运行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包版本。一个一个对比,看看是否都正常下载。
例如:
解决方法:将该jar包所在目录下的所有文件删除,重新运行Maven install
检查是否下载成功,如果还是不能下载,就在网上下载同版本的拷贝进去。
下面是下载正确后的jar包。
再次运行项目就能正常运行了。
虽然这个小问题困扰了我两天,但作为一枚小白还是感觉有所收获。
参考文章:https://blog.****.net/u012660464/article/details/53394549