启动Java Web项目时提示错误:A child container failed during start
完整错误信息如下:
- 严重: A child container failed during start
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testcs_dn-admin-web]]
- 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:1123)
- at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
- 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[/testcs_dn-admin-web]]
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
- ... 6 more
- Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name Action
- at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3275)
- at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3254)
- at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1430)
- at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1344)
- at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
- at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
- at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
- at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
- at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- ... 6 more
- 十二月 09, 2014 2:21:25 下午 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:1123)
- at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
- 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:321)
- at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
- Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
- 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:1131)
- at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- ... 6 more
- 十二月 09, 2014 2:21:25 下午 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[8006]]
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
- at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
- 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:321)
- at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
- Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
- at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
- 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:154)
- at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
- 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:1131)
- at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- ... 11 more
- 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol pause
- 信息: Pausing ProtocolHandler ["http-bio-8081"]
- 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol pause
- 信息: Pausing ProtocolHandler ["ajp-bio-8010"]
- 十二月 09, 2014 2:21:25 下午 org.apache.catalina.core.StandardService stopInternal
- 信息: Stopping service Catalina
- 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol destroy
- 信息: Destroying ProtocolHandler ["http-bio-8081"]
- 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol destroy
- 信息: Destroying ProtocolHandler ["ajp-bio-8010"]
解决这个问题的关键在于错误信息中的:
- Servlet mapping specifies an unknown servlet name Action
- <servlet-mapping>
- <servlet-name>Action</servlet-name>
- <url-pattern>/public/Action</url-pattern>
- </servlet-mapping>
以上是别人的心得,但仍然不懂为什么要去掉。。。