Tomcat启动项目报错:invalid LOC header (bad signature)

太过爱你忘了你带给我的痛 2022-06-04 03:14 300阅读 0赞

一、问题描述

项目用的是Maven构建的,用Tomcat一启动,就报invalid LOC header (bad signature)错误:

  1. 03-Dec-2017 00:30:01.359 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
  2. org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fendo-SSM]]
  3. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
  4. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
  5. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
  6. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
  7. at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1129)
  8. at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1871)
  9. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  10. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  11. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  12. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  13. at java.lang.Thread.run(Thread.java:748)
  14. Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@7822458a]
  15. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
  16. at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
  17. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5099)
  18. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
  19. ... 10 more
  20. Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@58b14405]
  21. at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
  22. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:135)
  23. at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:707)
  24. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
  25. ... 13 more
  26. Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
  27. at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
  28. at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
  29. ... 16 more
  30. Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
  31. at java.util.zip.ZipFile.read(Native Method)
  32. at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
  33. at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)
  34. at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
  35. at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
  36. at sun.misc.IOUtils.readFully(IOUtils.java:65)
  37. at java.util.jar.JarFile.getBytes(JarFile.java:425)
  38. at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
  39. at java.util.jar.JarFile.getManifest(JarFile.java:180)
  40. at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)
  41. ... 17 more
  42. 03-Dec-2017 00:30:01.363 严重 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory D:\Developer\apache-tomcat-8\apache-tomcat-8.0.45\webapps\fendo-SSM
  43. java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fendo-SSM]]
  44. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757)
  45. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
  46. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
  47. at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1129)
  48. at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1871)
  49. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  50. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  51. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  52. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  53. at java.lang.Thread.run(Thread.java:748)

出现这种情况的原因就是原因就是某个jar包由于什么原因被破坏了,或者没下载全等等。

二、解决方法:

网上都解决方法是:

方法1、可通过右击项目名 -> Run as -> Maven test ,这时控制台会报哪个jar包出错。 (也可以打开DOS命令窗口,切换至项目目录,运行mvn test命令,和Eclipse的控制台输出信息一致)

方法2、如果方法1未出现任何错误信息,那么就使用笨办法。打开项目中的pom.xml文件,在自己的Maven本地仓库去查找pom.xml文件中每一个dependency节点所对应的jar包版本。一个一个对比,看看是否都正常下载。

我这里根本就不行,然后我通过以下命令找出来病因(需要使用tomcat插件):

  1. mvn tomcat7:run

20171203005309301

然后把它删除,从新下载就好了。

发表评论

表情:
评论列表 (有 0 条评论,300人围观)

还没有评论,来说两句吧...

相关阅读