`

SpringMVC框架,启动Tomcat时的错误,无法启动

 
阅读更多

从网上找了个Spring MVC框架系统,部署到Eclipse后准备启动,当Web.xml里面不配做context,Servlet,filter的时候,系统可以正常启动,但当配置了context,Servlet,filter的时候,系统无法正常启动,出现的错误信息为:

严重: A child container failed during start

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/webmvc]]

at java.util.concurrent.FutureTask.report(FutureTask.java:122)

at java.util.concurrent.FutureTask.get(FutureTask.java:192)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)

at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)

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

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)

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

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

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

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

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

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

... 6 more

Caused by: java.lang.NullPointerException

at web.config.CommonInitializer.onStartup(CommonInitializer.java:54)

at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5292)

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

... 6 more

 

七月 08, 2016 10:45:26 上午 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(FutureTask.java:122)

at java.util.concurrent.FutureTask.get(FutureTask.java:192)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

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

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)

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

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)

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

at org.apache.catalina.startup.Catalina.start(Catalina.java:629)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]

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

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)

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

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

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

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

Caused by: org.apache.catalina.LifecycleException: A child container failed during start

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)

at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)

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

... 6 more

 

七月 08, 2016 10:45:26 上午 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:153)

at org.apache.catalina.startup.Catalina.start(Catalina.java:629)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]

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

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)

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

... 7 more

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]

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

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)

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

... 9 more

Caused by: org.apache.catalina.LifecycleException: A child container failed during start

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

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

... 11 more

 

七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol pause

信息: Pausing ProtocolHandler ["http-nio-8080"]

七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol pause

信息: Pausing ProtocolHandler ["ajp-nio-8009"]

七月 08, 2016 10:45:26 上午 org.apache.catalina.core.StandardService stopInternal

信息: Stopping service Catalina

七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy

信息: Destroying ProtocolHandler ["http-nio-8080"]

七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy

严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]

java.lang.NullPointerException

at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)

at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)

at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)

at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)

at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)

at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)

at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)

at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)

at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)

at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)

at org.apache.catalina.startup.Catalina.start(Catalina.java:633)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

 

七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy

信息: Destroying ProtocolHandler ["ajp-nio-8009"]

七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy

严重: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]

java.lang.NullPointerException

at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)

at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)

at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)

at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)

at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)

at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)

at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)

at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)

at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)

at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)

at org.apache.catalina.startup.Catalina.start(Catalina.java:633)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)

 

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

 

其中,比较常见的错误语句为:

A child container failed during start

Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/xxx]]

Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]

将错误信息分别去网上查询,根本别人的经验均无法解决。

 

于是分析每一条错误信息,web.config.CommonInitializer.onStartup(CommonInitializer.java:54),忽然想到,会不会是该配置信息已经在系统中定义一次了。从系统中查找CommonInitializer.java,豁然开朗,果然如此。

 

Servlet3.0规范,支持将web.xml相关配置也硬编码到代码中[servlet,filter,listener,等等],并由javax.servlet.ServletContainerInitializer的实现类负责在容器启动时进行加载。

 

于是试着将硬编码加载配置的类去掉,果然可以正常启动并访问了。

 

硬编码加载时,实现的接口

WebApplicationInitializer

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics