tomcat启动异常:A child container failed during start

最近给某公司准备内部考核项目试题时,先准备了一套传统jar包的项目形式,然后再准备一个maven项目,当把传统项目的代码以及配置文件什么的都拷贝过来,项目的jar依赖也添加了后,就是启动不起来,一启动就报错:

八月 30, 2018 4:38:46 下午 org.apache.catalina.startup.Catalina start
严重: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:681)
	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 [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:949)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 11 more

我反复检查项目,发现除了spring的版本跟传统项目不一致之外,没有其他差异,传统项目用的是4.3.2.RELEASE,而我maven项目里使用的是5.0.4.RELEASE,进入web.xml,检查配置没问题,然后检查web.xml的类是否都在(按住CTRl+移动鼠标,经过类名时能点击就说明该类能找到),结果发现Log4jConfigListener找不到,根据包名去spring-web包下去找,果然没有这个类。我也蛮奇怪的,案例说新版本支持老版本,老版本的Log4jConfigListener就位于spring-web jar包里面,由于时间比较赶,没有去深究问题的原因,于是直接把版本换回4.3.2.RELEASE,再启动,问题解决了。后续再去研究一下,到时将会分享出来。敬请关注。

猜你喜欢

转载自blog.csdn.net/lujiangui/article/details/82223960