7

我有一个使用 Resteasy 作为后端 api/服务的 GWT 应用程序,该项目可以正常工作,但是当我将项目移动到另一台机器并运行它时,在运行 GWT 时出现此错误:

Caused by: java.util.zip.ZipException: invalid distance too far back
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
    at java.util.zip.ZipInputStream.read(ZipInputStream.java:193)
    at java.util.jar.JarInputStream.read(JarInputStream.java:207)
    at org.scannotation.archiveiterator.InputStreamWrapper.read(InputStreamWrapper.java:36)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
    at java.io.DataInputStream.readInt(DataInputStream.java:387)
    at javassist.bytecode.ClassFile.read(ClassFile.java:731)
    at javassist.bytecode.ClassFile.<init>(ClassFile.java:108)
    at org.scannotation.AnnotationDB.scanClass(AnnotationDB.java:343)
    at org.scannotation.AnnotationDB.scanArchives(AnnotationDB.java:326)
    at org.jboss.resteasy.plugins.server.servlet.ConfigurationBootstrap.createDeployment(ConfigurationBootstrap.java:163)
    ... 24 more

可能是什么问题呢?

  • 是 GWT 罐子还是 Resteasy?ZipException 是什么意思?这是否意味着损坏的依赖关系?
4

4 回答 4

8

我要在这里冒个险,说你有一个类兼容性错误或损坏的 jars(查看调用堆栈,它正在尝试从 jar 文件加载类)。

验证您在两个系统上的 Java 版本是否完全相同,然后将整个项目从工作主机复制到非工作主机。你可能有一个损坏的 Jar。

基本上确保一切都是一样的,然后再试一次

于 2013-05-16T20:21:21.667 回答
2

有时您的防火墙会中断 ftp 连接,因此请尝试在您使用的防火墙上为 java 7 保留一个例外。在Windows 7中是:

netsh advfirewall set global statefulftp disable 

通过以管理员身份运行命令提示符来执行此操作。

于 2013-12-04T04:09:08.710 回答
1

基本上我的项目托管在 Bitbucket 中。所以我所做的是创建一个文件夹作为新的工作区文件夹。然后,git clone那里的项目。然后发出 mvn clean install 和 mvn gwt:run 然后一切正常。

于 2013-05-17T02:44:55.293 回答
0

我不知道您的问题是否相同,但是,我遇到了同样的错误,发现它与 Firefox 版本 > 10.0 有关。出于某种原因,Firefox 会转换任何“!” 字符变成类似“%21”的东西。

在我的场景中,由于这个事实,我的应用程序在渲染图像时触发了这个错误。Chrome 上没有发生同样的情况。

这种情况可以通过实现一个过滤器来处理请求来处理。

如果这种情况与您的问题相符,请查看这篇文章: javax.faces.FacesException: Error decode resource data while loading JSF page

于 2017-01-31T12:49:51.783 回答