为Maven小白,今天这问题困扰了我好久,经过多次在网上查询,终于找到了原因。明明一个小问题却耗费很多时间,着实不应该,所以必须记录一下。
报错信息如下:
对话框:
控制台:
- <span style="font-size:14px;"><span style="color:#ff0000;">严重: A child container failed during start
 - java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMvcController]]
 - 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:916)
 - at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
 - at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
 - 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[/SpringMvcController]]
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
 - ... 6 more
 - Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@43cd5898]
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
 - at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4909)
 - at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5039)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - ... 6 more
 - Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@4d31c0af]
 - at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
 - at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:699)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - ... 9 more
 - Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
 - at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:96)
 - at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 - ... 12 more
 - Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
 - at java.util.zip.ZipFile.read(Native Method)
 - at java.util.zip.ZipFile.access$1400(Unknown Source)
 - at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)
 - at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)
 - at java.util.zip.InflaterInputStream.read(Unknown Source)
 - at sun.misc.IOUtils.readFully(Unknown Source)
 - at java.util.jar.JarFile.getBytes(Unknown Source)
 - at java.util.jar.JarFile.getManifestFromReference(Unknown Source)
 - at java.util.jar.JarFile.getManifest(Unknown Source)
 - at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:94)
 - ... 13 more
 - 十一月 29, 2016 2:54:19 下午 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:916)
 - at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
 - 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: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:154)
 - at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
 - at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
 - 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:924)
 - at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - ... 6 more
 - 十一月 29, 2016 2:54:19 下午 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:154)
 - at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
 - 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: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:154)
 - at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
 - 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:439)
 - 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:924)
 - at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
 - at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 - ... 11 more
 - 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol pause
 - 信息: Pausing ProtocolHandler ["http-nio-8080"]
 - 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol pause
 - 信息: Pausing ProtocolHandler ["ajp-nio-8009"]
 - 十一月 29, 2016 2:54:19 下午 org.apache.catalina.core.StandardService stopInternal
 - 信息: Stopping service Catalina
 - 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol destroy
 - 信息: Destroying ProtocolHandler ["http-nio-8080"]
 - 十一月 29, 2016 2:54:19 下午 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:305)
 - at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:481)
 - at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:823)
 - at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:533)
 - at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
 - at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
 - at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:588)
 - at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
 - at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:859)
 - at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
 - at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
 - 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:351)
 - at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
 - 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol destroy
 - 信息: Destroying ProtocolHandler ["ajp-nio-8009"]
 - 十一月 29, 2016 2:54:19 下午 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:305)
 - at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:481)
 - at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:823)
 - at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:533)
 - at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
 - at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
 - at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:588)
 - at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
 - at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:859)
 - at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
 - at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
 - 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:351)
 - at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)</span>
 - </span>
 
原因:
提取错误的关键信息
说明Jar包出现了问题。
那么接下来就要找哪个jar包出现了问题:
方法1、可通过右击项目名 -> Run as -> Maven test ,这时控制台会报哪个jar包出错。 (也可以打开DOS命令窗口,切换至项目目录,运行mvn test命令,和Eclipse的控制台输出信息一致)
方法2、如果方法1未出现任何错误信息,那么就使用笨办法。打开项目中的pom.xml文件,在自己的Maven本地仓库去查找pom.xml文件中每一个dependency节点所对应的jar包版本。一个一个对比,看看是否都正常下载。
这里,我找到了本地仓库中出现的jar包错误:
解决方法:
既然jar包未下载成功,那么重新下载就行了。如果重新下载还是不能成功,那就在网上下载同版本的拷贝进去。
删除掉该jar包所在目录下的所有文件后,重新运行maven install。
这时,可看到jar包已正常下载。
再次运行项目,右击项目 -> Run as -> Run on server 。可以发现,项目能正常运行了。
                    
                
                
            
        
浙公网安备 33010602011771号