Tomcat 部署2個應用后只有一個可以訪問,另一個不能訪問,一般來說就是因為Tomcat啟動加載了配置文件后,當啟動另一個應用時由於一些配置名稱相同所以不再加載,導致之后應用無法正常啟動。
異常信息:
org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [HikariDataSource (null)] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: wenda:name=dataSource,type=HikariDataSource
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[
解決方法: 在web.xml中修改
<context-param> <param-name>webAppRootKey</param-name> <param-value>XXX</param-value> </context-param>
使webAppRootKey值XXX不相同即可。
如果是SpringBoot項目則在application中各自配置
spring.jmx.default-domain=XXX
以保證domain是兩個不一樣的即可。
參考資料:
https://blog.csdn.net/hongtinghua/article/details/81383232
https://www.zhihu.com/question/36688387
