我的JSF Web應用程序給予隨機錯誤:訪問文件時的「zip文件關閉」(如圖像,CSS,JS )。它部署在Jetty 7上。它看起來像是其中一些文件沒有加載(一些圖像在頁面上丟失)。在Jetty上的JSF2給出隨機'zip文件關閉',但從maven碼頭插件運行時(碼頭:運行)
java.lang.IllegalStateException: zip file closed
at java.util.zip.ZipFile.ensureOpen(ZipFile.java:403)
at java.util.zip.ZipFile.entries(ZipFile.java:298)
at java.util.jar.JarFile.entries(JarFile.java:217)
at org.eclipse.jetty.util.resource.JarFileResource.list(JarFileResource.java:261)
at org.eclipse.jetty.util.resource.ResourceCollection.list(ResourceCollection.java:421)
at org.eclipse.jetty.util.resource.Resource.getListHTML(Resource.java:509)
at org.eclipse.jetty.servlet.DefaultServlet.sendDirectory(DefaultServlet.java:741)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:564)
當我從Maven插件(7.x版)與碼頭運行:運行或碼頭:運行戰爭然後我沒有得到任何錯誤。 更重要的是,訪問Web上下文的根路徑只會在獨立碼頭上運行時發出「zip文件關閉」錯誤,但在從Maven插件運行時不會出現此類錯誤,則是那些目錄視圖。
我的web.xml:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
的pom.xml:
....
<dependencies>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
....
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.5.1.v20110908</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
</configuration>
<dependencies>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.3</version>
</dependency>
</dependencies>
</plugin>
任何想法可能是什麼?
我們正在經歷的SUSE Linux企業服務器11 SP1同樣的問題,我們試圖降級碼頭.maven.plugin到7.2.2,但問題仍然存在。 zip錯誤是隨機的,瀏覽器中的重新加載可以修復用戶的問題(意味着丟失了img或css)。但是,對我們來說這不是一個解決方案。我們已經驗證資源是在文件系統上解壓的,並且Jetty有權訪問它們。任何有同樣問題的人,或者最好是解決方案? – HoleInVoid