运行Maven项目Tomcat不能正常启动,出现invalid LOC header (bad signature)错误

刚开始接触项目,在学习该项目时,遇到没见过的报错,好在我没有放弃。

报错信息:

弹出对话框:

运行Maven项目Tomcat不能正常启动,出现invalid LOC header (bad signature)错误

Console

  1 七月 12, 2019 11:24:58 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
  2 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:taotao-manager-web' did not find a matching property.
  3 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
  4 信息: Server version:        Apache Tomcat/8.0.20
  5 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
  6 信息: Server built:          Feb 15 2015 18:10:42 UTC
  7 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
  8 信息: Server number:         8.0.20.0
  9 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 10 信息: OS Name:               Windows 7
 11 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 12 信息: OS Version:            6.1
 13 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 14 信息: Architecture:          amd64
 15 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 16 信息: Java Home:             E:\jdk\jre
 17 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 18 信息: JVM Version:           1.8.0_45-b15
 19 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 20 信息: JVM Vendor:            Oracle Corporation
 21 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 22 信息: CATALINA_BASE:         E:\apache-tomcat-8.0.20
 23 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 24 信息: CATALINA_HOME:         E:\apache-tomcat-8.0.20
 25 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 26 信息: Command line argument: -Dcatalina.base=E:\apache-tomcat-8.0.20
 27 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 28 信息: Command line argument: -Dcatalina.home=E:\apache-tomcat-8.0.20
 29 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 30 信息: Command line argument: -Dwtp.deploy=E:\apache-tomcat-8.0.20\webapps
 31 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 32 信息: Command line argument: -Djava.endorsed.dirs=E:\apache-tomcat-8.0.20\endorsed
 33 七月 12, 2019 11:24:58 上午 org.apache.catalina.startup.VersionLoggerListener log
 34 信息: Command line argument: -Dfile.encoding=UTF-8
 35 七月 12, 2019 11:24:58 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
 36 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: E:\jdk\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;E:/jdk/bin/../jre/bin/server;E:/jdk/bin/../jre/bin;E:/jdk/bin/../jre/lib/amd64;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\opensource\apache-maven-3.3.9\bin;E:\jdk\bin;C:\Program Files (x86)\VisualSVN Server\bin;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;E:\Eclipse\eclipse-mars\eclipse;;.
 37 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol init
 38 信息: Initializing ProtocolHandler ["http-nio-80"]
 39 七月 12, 2019 11:24:59 上午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
 40 信息: Using a shared selector for servlet write/read
 41 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol init
 42 信息: Initializing ProtocolHandler ["ajp-nio-8009"]
 43 七月 12, 2019 11:24:59 上午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
 44 信息: Using a shared selector for servlet write/read
 45 七月 12, 2019 11:24:59 上午 org.apache.catalina.startup.Catalina load
 46 信息: Initialization processed in 1122 ms
 47 七月 12, 2019 11:24:59 上午 org.apache.catalina.core.StandardService startInternal
 48 信息: Starting service Catalina
 49 七月 12, 2019 11:24:59 上午 org.apache.catalina.core.StandardEngine startInternal
 50 信息: Starting Servlet Engine: Apache Tomcat/8.0.20
 51 七月 12, 2019 11:24:59 上午 org.apache.catalina.core.ContainerBase startInternal
 52 严重: A child container failed during start
 53 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/taotao-manager-web]]
 54     at java.util.concurrent.FutureTask.report(FutureTask.java:122)
 55     at java.util.concurrent.FutureTask.get(FutureTask.java:192)
 56     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
 57     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
 58     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 59     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
 60     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
 61     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 62     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 63     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 64     at java.lang.Thread.run(Thread.java:745)
 65 Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/taotao-manager-web]]
 66     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
 67     ... 6 more
 68 Caused by: org.apache.catalina.LifecycleException: Failed to start component [[email protected]]
 69     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
 70     at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4840)
 71     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4970)
 72     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 73     ... 6 more
 74 Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [[email protected]]
 75     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
 76     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
 77     at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:699)
 78     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 79     ... 9 more
 80 Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
 81     at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:96)
 82     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
 83     ... 12 more
 84 Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
 85     at java.util.zip.ZipFile.read(Native Method)
 86     at java.util.zip.ZipFile.access$1400(ZipFile.java:61)
 87     at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)
 88     at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:420)
 89     at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
 90     at sun.misc.IOUtils.readFully(IOUtils.java:65)
 91     at java.util.jar.JarFile.getBytes(JarFile.java:425)
 92     at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
 93     at java.util.jar.JarFile.getManifest(JarFile.java:180)
 94     at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:94)
 95     ... 13 more
 96 
 97 七月 12, 2019 11:24:59 上午 org.apache.catalina.core.ContainerBase startInternal
 98 严重: A child container failed during start
 99 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
100     at java.util.concurrent.FutureTask.report(FutureTask.java:122)
101     at java.util.concurrent.FutureTask.get(FutureTask.java:192)
102     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
103     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
104     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
105     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)
106     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
107     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
108     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
109     at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
110     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
111     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
112     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
113     at java.lang.reflect.Method.invoke(Method.java:497)
114     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
115     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
116 Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
117     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
118     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
119     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
120     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
121     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
122     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
123     at java.lang.Thread.run(Thread.java:745)
124 Caused by: org.apache.catalina.LifecycleException: A child container failed during start
125     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:925)
126     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
127     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
128     ... 6 more
129 
130 七月 12, 2019 11:24:59 上午 org.apache.catalina.startup.Catalina start
131 严重: The required Server component failed to start so Tomcat is unable to start.
132 org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
133     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
134     at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
135     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
136     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
137     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
138     at java.lang.reflect.Method.invoke(Method.java:497)
139     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
140     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
141 Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
142     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
143     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
144     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
145     ... 7 more
146 Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
147     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
148     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)
149     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
150     ... 9 more
151 Caused by: org.apache.catalina.LifecycleException: A child container failed during start
152     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:925)
153     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
154     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
155     ... 11 more
156 
157 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol pause
158 信息: Pausing ProtocolHandler ["http-nio-80"]
159 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol pause
160 信息: Pausing ProtocolHandler ["ajp-nio-8009"]
161 七月 12, 2019 11:24:59 上午 org.apache.catalina.core.StandardService stopInternal
162 信息: Stopping service Catalina
163 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol destroy
164 信息: Destroying ProtocolHandler ["http-nio-80"]
165 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol destroy
166 严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-80"]
167 java.lang.NullPointerException
168     at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:307)
169     at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:482)
170     at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:797)
171     at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:532)
172     at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
173     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
174     at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:588)
175     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
176     at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:859)
177     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
178     at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
179     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
180     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
181     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
182     at java.lang.reflect.Method.invoke(Method.java:497)
183     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
184     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
185 
186 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol destroy
187 信息: Destroying ProtocolHandler ["ajp-nio-8009"]
188 七月 12, 2019 11:24:59 上午 org.apache.coyote.AbstractProtocol destroy
189 严重: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
190 java.lang.NullPointerException
191     at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:307)
192     at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:482)
193     at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:797)
194     at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:532)
195     at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
196     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
197     at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:588)
198     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
199     at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:859)
200     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
201     at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
202     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
203     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
204     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
205     at java.lang.reflect.Method.invoke(Method.java:497)
206     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
207     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

上面报错日志中高亮部分为关键信息,说明Jar包出现了问题。现在问题找到了,解决办法如下:

(1)可通过右击项目名 ->  Run as -> Maven test ,这时控制台会报哪个jar包出错。

(2)打开项目中的pom.xml文件,在自己的Maven本地仓库去查找pom.xml文件中每一个dependency节点所对应的jar包版本。一个一个对比,看看是否都正常下载。 

例如:

运行Maven项目Tomcat不能正常启动,出现invalid LOC header (bad signature)错误

解决方法:将该jar包所在目录下的所有文件删除,重新运行Maven install

运行Maven项目Tomcat不能正常启动,出现invalid LOC header (bad signature)错误

 

检查是否下载成功,如果还是不能下载,就在网上下载同版本的拷贝进去。

下面是下载正确后的jar包。

运行Maven项目Tomcat不能正常启动,出现invalid LOC header (bad signature)错误

再次运行项目就能正常运行了。

虽然这个小问题困扰了我两天,但作为一枚小白还是感觉有所收获。

 

参考文章:https://blog.csdn.net/u012660464/article/details/53394549