An invalid LOC header (bad signature) error occurs when running a Maven project, and Tomcat cannot start normally

As a Maven novice, this problem has troubled me for a long time today. After many online inquiries, I finally found the reason. Obviously a small problem takes a lot of time, it really shouldn't, so it must be recorded.

 

The error message is as follows:

 

Dialog:

 

console:

 

 

[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. November 29, 2016 2:54:19 pm 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. November 29, 2016 2:54:19 pm 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. November 29, 2016 2:54:19 pm org.apache.coyote.AbstractProtocol pause  
  107. 信息: Pausing ProtocolHandler ["http-nio-8080"]  
  108. November 29, 2016 2:54:19 pm org.apache.coyote.AbstractProtocol pause  
  109. 信息: Pausing ProtocolHandler ["ajp-nio-8009"]  
  110. November 29, 2016 2:54:19 pm org.apache.catalina.core.StandardService stopInternal  
  111. Information: Stopping service Catalina  
  112. November 29, 2016 2:54:19 pm org.apache.coyote.AbstractProtocol destroy  
  113. 信息: Destroying ProtocolHandler ["http-nio-8080"]  
  114. November 29, 2016 2:54:19 pm 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. November 29, 2016 2:54:19 pm org.apache.coyote.AbstractProtocol destroy  
  136. 信息: Destroying ProtocolHandler ["ajp-nio-8009"]  
  137. November 29, 2016 2:54:19 pm 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>  

 

  reason:

Extract wrong key information

It means that there is a problem with the Jar package.

 

Then the next step is to find which jar package has a problem:

Method 1. Right-click the project name -> Run as -> Maven test , then the console will report which jar package is wrong. (You can also open the DOS command window, switch to the project directory, and run the mvn test command, which is consistent with the console output of Eclipse)

 

Method 2. If method 1 does not show any error message, then use the stupid method. Open the pom.xml file in the project, and find the jar package version corresponding to each dependency node in the pom.xml file in your own Maven local repository. Compare one by one to see if they are all downloaded normally. 

 

Here, I found the jar package error in the local repository:

 

 

Solution:

Since the jar package has not been downloaded successfully, download it again. If the re-download still fails, then download a copy of the same version from the Internet.

 

 

After deleting all files in the directory where the jar package is located, re-run maven install.

 

 

At this time, you can see that the jar package has been downloaded normally.

 

 

 

Run the project again, right click on the project -> Run as -> Run on server . It can be found that the project can run normally.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325804246&siteId=291194637