Java 无法启动组件 - ZipException:无效的 LOC 标头(错误的签名)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/40945116/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Failed to start component - ZipException: invalid LOC header (bad signature)
提问by eccentricCoder
I have gone through similar posts around. I have tried most of those solutions but was not able to get rid of the error I am getting. Expecting some help on this.
我浏览过类似的帖子。我已经尝试了大多数这些解决方案,但无法摆脱我遇到的错误。期待这方面的一些帮助。
This error came after I added maven dependancies to deployment assembly. I am using STS with Pivotal tc Server Development Edition v3.1. I already checked the version of tc server and java home. Both use java 8.
在我将 maven 依赖项添加到部署程序集之后,出现了此错误。我在 Pivotal tc Server Development Edition v3.1 中使用 STS。我已经检查了 tc server 和 java home 的版本。两者都使用java 8。
I cannot understand what the problem is.
我无法理解问题是什么。
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myProject]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:596)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1805)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@95e0743]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4850)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4982)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
... 10 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@6a44e649]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:111)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:141)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:701)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
... 13 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:139)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
... 16 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access00(Unknown Source)
at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at sun.misc.IOUtils.readFully(Unknown Source)
at java.util.jar.JarFile.getBytes(Unknown Source)
at java.util.jar.JarFile.getManifestFromReference(Unknown Source)
at java.util.jar.JarFile.getManifest(Unknown Source)
at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:137)
... 17 more
Dec 03, 2016 10:34:56 AM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor E:\Programs\sts-bundle\pivotal-tc-server-developer-3.2.0.RELEASE\base-instance\conf\Catalina\localhost\myProject.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myProject]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:596)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1805)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
The following is my pom.xml. Error came when I tried to add spring-webmvc dependancy to pom.xml.
以下是我的pom.xml。当我尝试将 spring-webmvc 依赖项添加到 pom.xml 时出现错误。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.infiniteskills.mvc</groupId>
<artifactId>myProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j13</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
</project>
采纳答案by Venkata Santhosh Piduri
I have solved similar kind of problem by deleting all files present in local maven repository and downloading them again.
我已经通过删除本地 maven 存储库中存在的所有文件并再次下载它们来解决类似的问题。
linux or mac users can follow below steps for deleting all files.
linux 或 mac 用户可以按照以下步骤删除所有文件。
- navigate to .m2 file
- execute remove command (rm -rf repository/).
- 导航到 .m2 文件
- 执行删除命令(rm -rf repository/)。
回答by Boris_Ndong
Nagivate to your C:\Users\user.m2\repository\projects\project1
导航到您的 C:\Users\user.m2\repository\projects\project1
Pick the corresponding project and delete it from your .m2. Then do mvn clean install in the terminal it will recreate those jar files for you Reinstall the ear or war file in server and it should deploy just fine now.
选择相应的项目并将其从您的 .m2 中删除。然后在终端中执行 mvn clean install 它将为您重新创建那些 jar 文件在服务器中重新安装 ear 或 war 文件,它现在应该可以正常部署了。