zoukankan      html  css  js  c++  java
  • 运行Maven项目时出现invalid LOC header (bad signature)错误,Tomcat不能正常启动

    作为Maven小白,今天这问题困扰了我好久,经过多次在网上查询,终于找到了原因。明明一个小问题却耗费很多时间,着实不应该,所以必须记录一下。

    报错信息如下:

    对话框:

    控制台:

    [html] view plain copy
     
    1. <span style="font-size:14px;"><span style="color:#ff0000;">严重: A child container failed during start  
    2. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMvcController]]  
    3.     at java.util.concurrent.FutureTask.report(Unknown Source)  
    4.     at java.util.concurrent.FutureTask.get(Unknown Source)  
    5.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)  
    6.     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)  
    7.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    8.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)  
    9.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)  
    10.     at java.util.concurrent.FutureTask.run(Unknown Source)  
    11.     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)  
    12.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)  
    13.     at java.lang.Thread.run(Unknown Source)  
    14. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMvcController]]  
    15.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)  
    16.     ... 6 more  
    17. Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@43cd5898]  
    18.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)  
    19.     at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4909)  
    20.     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5039)  
    21.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    22.     ... 6 more  
    23. Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@4d31c0af]  
    24.     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)  
    25.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)  
    26.     at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:699)  
    27.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    28.     ... 9 more  
    29. Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)  
    30.     at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:96)  
    31.     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)  
    32.     ... 12 more  
    33. Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)  
    34.     at java.util.zip.ZipFile.read(Native Method)  
    35.     at java.util.zip.ZipFile.access$1400(Unknown Source)  
    36.     at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)  
    37.     at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)  
    38.     at java.util.zip.InflaterInputStream.read(Unknown Source)  
    39.     at sun.misc.IOUtils.readFully(Unknown Source)  
    40.     at java.util.jar.JarFile.getBytes(Unknown Source)  
    41.     at java.util.jar.JarFile.getManifestFromReference(Unknown Source)  
    42.     at java.util.jar.JarFile.getManifest(Unknown Source)  
    43.     at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:94)  
    44.     ... 13 more  
    45.   
    46. 十一月 29, 2016 2:54:19 下午 org.apache.catalina.core.ContainerBase startInternal  
    47. 严重: A child container failed during start  
    48. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]  
    49.     at java.util.concurrent.FutureTask.report(Unknown Source)  
    50.     at java.util.concurrent.FutureTask.get(Unknown Source)  
    51.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)  
    52.     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)  
    53.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    54.     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)  
    55.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    56.     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)  
    57.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    58.     at org.apache.catalina.startup.Catalina.start(Catalina.java:625)  
    59.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
    60.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
    61.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
    62.     at java.lang.reflect.Method.invoke(Unknown Source)  
    63.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)  
    64.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)  
    65. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]  
    66.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)  
    67.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)  
    68.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)  
    69.     at java.util.concurrent.FutureTask.run(Unknown Source)  
    70.     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)  
    71.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)  
    72.     at java.lang.Thread.run(Unknown Source)  
    73. Caused by: org.apache.catalina.LifecycleException: A child container failed during start  
    74.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)  
    75.     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)  
    76.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    77.     ... 6 more  
    78.   
    79. 十一月 29, 2016 2:54:19 下午 org.apache.catalina.startup.Catalina start  
    80. 严重: The required Server component failed to start so Tomcat is unable to start.  
    81. org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]  
    82.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)  
    83.     at org.apache.catalina.startup.Catalina.start(Catalina.java:625)  
    84.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
    85.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
    86.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
    87.     at java.lang.reflect.Method.invoke(Unknown Source)  
    88.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)  
    89.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)  
    90. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]  
    91.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)  
    92.     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)  
    93.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    94.     ... 7 more  
    95. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]  
    96.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)  
    97.     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)  
    98.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    99.     ... 9 more  
    100. Caused by: org.apache.catalina.LifecycleException: A child container failed during start  
    101.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)  
    102.     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)  
    103.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    104.     ... 11 more  
    105.   
    106. 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol pause  
    107. 信息: Pausing ProtocolHandler ["http-nio-8080"]  
    108. 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol pause  
    109. 信息: Pausing ProtocolHandler ["ajp-nio-8009"]  
    110. 十一月 29, 2016 2:54:19 下午 org.apache.catalina.core.StandardService stopInternal  
    111. 信息: Stopping service Catalina  
    112. 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol destroy  
    113. 信息: Destroying ProtocolHandler ["http-nio-8080"]  
    114. 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol destroy  
    115. 严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]  
    116. java.lang.NullPointerException  
    117.     at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:305)  
    118.     at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:481)  
    119.     at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:823)  
    120.     at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:533)  
    121.     at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)  
    122.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)  
    123.     at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:588)  
    124.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)  
    125.     at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:859)  
    126.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)  
    127.     at org.apache.catalina.startup.Catalina.start(Catalina.java:629)  
    128.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
    129.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
    130.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
    131.     at java.lang.reflect.Method.invoke(Unknown Source)  
    132.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)  
    133.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)  
    134.   
    135. 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol destroy  
    136. 信息: Destroying ProtocolHandler ["ajp-nio-8009"]  
    137. 十一月 29, 2016 2:54:19 下午 org.apache.coyote.AbstractProtocol destroy  
    138. 严重: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]  
    139. java.lang.NullPointerException  
    140.     at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:305)  
    141.     at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:481)  
    142.     at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:823)  
    143.     at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:533)  
    144.     at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)  
    145.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)  
    146.     at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:588)  
    147.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)  
    148.     at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:859)  
    149.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)  
    150.     at org.apache.catalina.startup.Catalina.start(Catalina.java:629)  
    151.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
    152.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
    153.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
    154.     at java.lang.reflect.Method.invoke(Unknown Source)  
    155.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)  
    156.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)</span>  
    157. </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 。可以发现,项目能正常运行了。

  • 相关阅读:
    WPF PrismDialog PopupWindowAction使用MetroWindow
    WPF 定义Lookless控件的默认样式、 OnApplyTemplate 如何使用(实现方式、如何工作的)!
    WPF MeasureOverride和 ArrangeOverride做个 页面导航
    MeasureOverride和ArrangeOverride 练手项目
    XAML 调试工具 不见了?
    未能加载文件或程序集,PublicKeyToken=“**********”,或它的某一个依赖项。强名称验证失败。
    .NET 中的 GAC
    软考过程知识整理记录
    定时执行exe、windows任务计划、windows服务
    为视图或函数指定的列名比其定义中的列多。
  • 原文地址:https://www.cnblogs.com/mabingxue/p/9007351.html
Copyright © 2011-2022 走看看