【问题标题】:ZipException And JerseyZipException 和泽西岛
【发布时间】:2017-04-11 16:52:49
【问题描述】:

我将 Tomcat 8 和类似 Jersey 的依赖项用于动态 Web 项目。

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.17.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-server -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.17.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.17.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-servlet -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17.1</version>
    </dependency>
</dependencies>

运行时我收到错误原因:

Caused 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)
... 12 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.access$1400(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.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)
... 13 more

我不知道我做错了什么。这样的 Jersey 的依赖项和 Tomcat 版本的兼容性有问题吗? 如果您需要,我可以添加有关项目整体的一些信息。

【问题讨论】:

  • 最佳猜测:损坏的 jar 文件。太糟糕了,错误消息不包含有问题的文件的名称。我建议尝试调试 Tomcat,并在 ZipException 上放置一个断点,这样您就可以找到导致问题的文件。
  • 似乎很难)也许有人可以分享 Jersey 的工作版本?
  • 文件位于Maven repository。去手动下载它们,然后与你拥有的进行比较。
  • 检查lib中是否存在一些非jar文件,我曾经有过问题

标签: java tomcat jersey


【解决方案1】:

这里是我的 maven 的依赖项: enter image description here

都是罐子)

【讨论】:

    【解决方案2】:

    我无法重现您的错误;我使用了您的依赖项,我的球衣应用程序运行良好。 正如多个其他问题所示,这绝对是一个损坏的 jar:tomcat server fails to start the server and application in STSServer does not starts with spring appTomcat Server failing to start。有时会在下载 jar 时出现互联网连接问题。

    1. 删除 maven 存储库文件夹中的所有 jar,默认位于 Users/{yourusername}/.m2/repository

    2. 右键单击您的项目,选择 Maven -> 更新项目 -> 选中强制更新快照/发布 -> 确定。

    从 Maven 存储库再次下载所有 jar 文件。它应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 2017-05-13
      • 2013-12-21
      • 1970-01-01
      • 2011-10-14
      • 2019-03-13
      相关资源
      最近更新 更多