ZipException:运行应用程序时无效距离过远错误



我有一个使用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 jar还是Resteasy?ZipException是什么意思?它是否意味着被破坏的依赖关系?

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

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

基本上确保一切相同,再试一次

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

netsh advfirewall set global statefulftp disable 

以管理员身份运行命令提示符。

基本上我的项目是托管在Bitbucket。所以我所做的就是创建一个文件夹作为新的工作空间文件夹。然后是git clone,这里的项目。然后执行mvn clean install和mvn gwt:run,然后一切正常。

我不知道你的问题是否相同,但是,我遇到了同样的错误,发现它与Firefox版本> 10.0有关。由于某些原因,Firefox将任何"!"字符转换为类似"%21"的东西。

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

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

如果这种情况符合你的问题,看看这篇文章:javax.faces.FacesException:加载JSF页面时解码资源数据出错

最新更新