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

我有一个使用Resteasy作为后端api / service的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.(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 

可能是什么问题呢?

  • 是GWTjar子还是Resteasy? ZipException是什么意思? 这是否意味着依赖损坏?

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

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

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

有时您的防火墙会破坏ftp连接,因此请尝试在您使用的防火墙上保留java 7的exception。 在Windows 7中它是:

 netsh advfirewall set global statefulftp disable 

通过以管理员身份运行命令提示符来完成。

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

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

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

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

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