org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:

在tomcat下部署war包时,出现这个错误,网上很多方案都无法解决。

问题描述:

多个项目一直都是部署在同一个Tomcat下,共用80端口,之前使用的MVC或者Servlet项目都没有问题,但是今天把新的Spring Boot项目部署上去之后,Tomcat直接抛出异常,并且该项目无法访问,其他项目正常。

异常:

SEVERE [localhost-startStop-3] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:

 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/app]]

            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)

            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)

            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)

            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)

            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:986)

            at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)

            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

            at java.util.concurrent.FutureTask.run(FutureTask.java:266)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

            at java.lang.Thread.run(Thread.java:748)

解决方案:

Spring Boot的spring.jmx资源管理是默认打开的,而两个项目同时使用会冲突,网上有两种解决办法,我用的是第一种,第二种大家自测:

修改配置文件:application.properties(yml)

办法1:

在项目配置中加入:spring.jmx.enabled=false

办法2:

在application中各自配置

spring.jmx.default-domain=project1

spring.jmx.default-domain=project2

以保证domain是两个不一样的

原文地址:https://www.cnblogs.com/tomxin7/p/9434085.html

你可能感兴趣的:(spring4.0)