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

来源:互联网 发布:访客统计系统源码 编辑:程序博客网 时间:2024/05/14 12:03

一、问题描述


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

03-Dec-2017 00:30:01.359 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:  org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fendo-SSM]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1129)at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1871)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)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:748)Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@7822458a]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5099)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)... 10 moreCaused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@58b14405]at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:135)at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:707)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)... 13 moreCaused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)... 16 moreCaused 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(ZipFile.java:60)at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)at sun.misc.IOUtils.readFully(IOUtils.java:65)at java.util.jar.JarFile.getBytes(JarFile.java:425)at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)at java.util.jar.JarFile.getManifest(JarFile.java:180)at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)... 17 more03-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 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fendo-SSM]]at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1129)at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1871)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)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:748)


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


二、解决方法:


网上都解决方法是:


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


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


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


mvn tomcat7:run



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

阅读全文
0 0
原创粉丝点击