我有一个springboot webapp,当我在tomcat 7.0.54上的服务器上部署它时,我在catalina.out中收到以下消息
INFO: 2 Spring WebApplicationInitializers detected on classpath
我的应用程序正在部署两次casue Exception
org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [inbound] with key 'inbound'; nested exception is javax.management.InstanceAlreadyExistsException
但我在tomcat 7.0.37的本地系统上尝试了相同的war文件,应用程序运行正常
任何建议?
感谢。
答案 0 :(得分:1)
我有同样的问题。我从spring-boot-starter-thymeleaf
文件中删除了pom.xml
,但它确实有效。您的classpath
中可能有一个库,其中包含另一个WebApplicationInitializer
。
答案 1 :(得分:1)
我有同样的问题。我从gradle文件中删除了compile("org.springframework.boot:spring-boot-actuator-docs")
并且它有效。
答案 2 :(得分:1)
我有一个相同的情况。远程服务器上的Spring Boot + Tomcat + InstanceAlreadyExistsException,但在我的本地Tomcat上运行良好。
原因是远程服务器在server.xml中具有两个指向同一Tomcat appBase目录(webapps)的Host元素,这导致所有webapp加载两次。对于某些Web应用程序而言,这不是问题,但对我而言,这是因为它尝试两次注册MBean。
我的解决方案是用另一个Host元素下的Alias替换其中一个Host元素。现在我只有一个Host元素,并且每个应用仅加载一次。