Tomcat启动报A child container failed during start问题解决

Tomcat启动报A child container failed during start问题解决

排查方案,把.xml内无关的所有注释掉,启动程序,如果成功了,就一点点代码还原+重启,直至找到致命的那行代码!(比如web.xml、pom.xml)

报错详情:

严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MyMaven]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:931)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:850)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MyMaven]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	... 6 more
Caused by: java.lang.IllegalArgumentException: The session tracking mode [SSL] requested for context [/MyMaven] is not supported by that context
	at org.apache.catalina.core.ApplicationContext.setSessionTrackingModes(ApplicationContext.java:1069)
	at org.apache.catalina.core.ApplicationContextFacade.setSessionTrackingModes(ApplicationContextFacade.java:626)
	at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1400)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1156)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:769)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5063)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more

七月 30, 2020 4:43:50 下午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:931)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:258)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:688)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:850)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MyMaven]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:931)
	... 8 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MyMaven]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	... 6 more
Caused by: java.lang.IllegalArgumentException: The session tracking mode [SSL] requested for context [/MyMaven] is not supported by that context
	at org.apache.catalina.core.ApplicationContext.setSessionTrackingModes(ApplicationContext.java:1069)
	at org.apache.catalina.core.ApplicationContextFacade.setSessionTrackingModes(ApplicationContextFacade.java:626)
	at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1400)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1156)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:769)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5063)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more

没有任何有用的提示,就是启动失败,弹框报错。
问了度娘,记下一些步骤:

1、servlet-api包冲突

  • 出现这个问题的原因是导入了servlet-api包,与tomcat7的依赖包servlet-api冲突
  • 检查pom.xml是否导入servlet-api
  • 加上<scope>provided</scope>之后再次运行,成功启动

2、找到问题了

  • 提示很明显了,[SSL] requested表示你的xml有地方配置了SSL请求方式。
  • 多看报错提示。
  • 排查方案,把.xml内无关的所有注释掉,启动程序,如果成功了,就一点点代码还原+重启,直至找到致命的那行代码!

排查方案,把.xml内无关的所有注释掉,启动程序,如果成功了,就一点点代码还原+重启,直至找到致命的那行代码!(比如web.xml、pom.xml)

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
"A child container failed during start"错误通常是由于Tomcat启动过程中无法正常启动子容器引起的。可能的原因和解决方法如下: 1. 依赖冲突:检查您的项目依赖中是否存在冲突或不兼容的版本。特别是关于Servlet API和其他相关的依赖。可以使用`mvn dependency:tree`命令或Gradle的依赖树插件来检查依赖关系。 解决方法:确保项目中使用的所有依赖都是兼容的,并且没有重复或冲突的版本。可以通过手动管理依赖版本或使用构建工具的冲突解决机制来解决依赖冲突问题。 2. 配置错误:检查您的Tomcat配置文件(如server.xml)是否存在错误或不完整的配置。特别是检查是否正确配置了各个子容器(如Context)。 解决方法:仔细检查Tomcat配置文件中的各个配置项,确保它们正确且完整。可以参考Tomcat官方文档或示例配置文件进行修复。 3. 应用程序错误:如果您的应用程序存在错误,可能会导致Tomcat启动失败。例如,缺少必要的类、配置错误等。 解决方法:检查应用程序代码和配置,确保它们正确且没有错误。查看Tomcat的日志文件以获取更多关于具体错误的信息。 4. 端口冲突:如果Tomcat正在使用的端口被其他进程占用,可能会导致启动失败。 解决方法:检查您的系统中是否有其他进程正在使用Tomcat所需的端口。可以尝试更改Tomcat的端口配置,或者停止占用端口的其他进程。 如果以上解决方法无法解决问题,请提供更详细的错误日志和相关配置信息,以便更好地帮助您排查问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值