在web服務器啟動時: java.util.zip.ZipException: error in opening zip file


今天發布war時啟動resin時,發現服務器報以下錯誤:

[11:45:48.330] Host[] starting
[11:45:48.470] java.util.zip.ZipException: error in opening zip file
[11:45:48.470]  at java.util.zip.ZipFile.open(Native Method)
[11:45:48.470]  at java.util.zip.ZipFile.<init>(ZipFile.java:127)
[11:45:48.470]  at java.util.jar.JarFile.<init>(JarFile.java:135)
[11:45:48.470]  at java.util.jar.JarFile.<init>(JarFile.java:72)
[11:45:48.470]  at com.caucho.vfs.Jar.getJarFile(Jar.java:608)
[11:45:48.470]  at com.caucho.vfs.Jar.getManifest(Jar.java:207)
[11:45:48.470]  at com.caucho.vfs.JarPath.getManifest(JarPath.java:178)
[11:45:48.470]  at com.caucho.loader.JarEntry.readManifest(JarEntry.java:100)
[11:45:48.470]  at com.caucho.loader.JarEntry.<init>(JarEntry.java:91)
[11:45:48.470]  at com.caucho.loader.LibraryLoader.addJar(LibraryLoader.java:241)
[11:45:48.470]  at com.caucho.loader.LibraryLoader.fillJars(LibraryLoader.java:234)
[11:45:48.470]  at com.caucho.loader.LibraryLoader.init(LibraryLoader.java:178)
[11:45:48.470]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[11:45:48.470]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[11:45:48.470]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[11:45:48.470]  at java.lang.reflect.Method.invoke(Method.java:597)
[11:45:48.470]  at com.caucho.config.BeanTypeStrategy.init(BeanTypeStrategy.java:318)
[11:45:48.470]  at com.caucho.config.NodeBuilder.configureImpl(NodeBuilder.java:259)
[11:45:48.470]  at com.caucho.config.NodeBuilder.configureChildImpl(NodeBuilder.java:303)
[11:45:48.470]  at com.caucho.config.BeanTypeStrategy.configure(BeanTypeStrategy.java:197)
[11:45:48.470]  at com.caucho.config.SetterAttributeStrategy.configure(SetterAttributeStrategy.java:91)
[11:45:48.470]  at com.caucho.config.NodeBuilder.configureAttributeImpl(NodeBuilder.java:381)
[11:45:48.470]  at com.caucho.config.NodeBuilder.configureBeanImpl(NodeBuilder.java:341)
[11:45:48.470]  at com.caucho.config.TypeStrategy.configureBean(TypeStrategy.java:103)
[11:45:48.470]  at com.caucho.config.BeanTypeStrategy.configureBean(BeanTypeStrategy.java:228)

....

從日志內容可以看出,錯誤在服務器剛啟動的時候就發生,所以可以確定問題並不是一個項目的邏輯有問題。而unwar之后的一個項目數據存在問題。

一開始以為是war包打包存在問題,所以清空各種緩存,確認各種設置,並重新加war包,發現在還是存在問題,啟動之后還是報相同的Exception。

 

上網搜索相關Exception, 大部分的說法是: zip包存在問題,數據錯誤,所以導致打開zip的時候報Exception。

為了確認為什么打的war包會問題,就開始用ant的unwar命令打開war包,而不是由resin的來unwar,結果發現在unwar命令是成功的,並沒有任何問題。

那么問題出在哪兒呢??

查看打包過后的整個項目里的各種數據資源,發現存在zip文件的地方只有WEB-INF/lib/里,實際上這些zip文件是不需要放在WEB-INF/lib/里的,是這里出問題了?? 嘗試着把zip全部刪除,然后再重啟服務器, OK了!!!

 

由此可以看出resin加載項目的jar包里時,除了加載jar之外,還加載了zip包, 而此時在jar包的格式解析zip包里,就出錯了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM