2在类路径上检测到Spring WebApplicationInitializers

时间:2017-03-16 06:35:38

标签: spring-boot

我有一个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文件,应用程序运行正常

任何建议?

感谢。

3 个答案:

答案 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元素,并且每个应用仅加载一次。