项目场景:
开发过程中,为了部署方便,将springboot项目打成war包以后,部署到同一个Tomcat的webapp目录下。
延伸
问题描述
- 将两个相同springboot框架编写的不同项目A、B部署到同一个Tomcat的webapp目录下,目的是为了同一个Tomcat能启动两个不同的项目,并且通过
localhost:8080/A
和localhost:8080/B
去访问,最终结果是都可以访问。 - 但是,结果是同时启动两个项目,最终导致Tomcat直接报错结束。可以通过Tomcat的日志文件查找到相关的报错信息。
原因分析:
原因1、配置spring.jmx.enabled=fasle
- 这个原因也是导致本次问题的原因,springboot的
2.2.x
以下的版本,spring.jmx.enabled
配置默认是true的而2.2.x
以上版本是默认关闭的。 - 相关的参考资料
解决方案:
方案1
方案1.1
- 将部署的两个项目,至少一个项目的配置文件中,配置
spring.jmx.enabled=fasle
方案1.2
在application中各自配置
spring.jmx.default-domain=A
spring.jmx.default-domain=B
以保证domain是两个不一样的