Jetty 错误: java.lang.IllegalStateException: zip file closed


在Jetty调试下测试的时候遇到一个,同样的内容在Tomcat下就没有任何问题,问题是这样的:访问页面的时候会出现例如css文件、js文件、图片文件 等静态文件没有加载出来。

查看控制台后发现如下错误:

2013-07-25 23:48:29.782:WARN:oejs.ServletHandler:/SAMS/js/sams.utils.js
java.lang.IllegalStateException: zip file closed
        at java.util.zip.ZipFile.ensureOpen(ZipFile.java:632)
        at java.util.zip.ZipFile.access$200(ZipFile.java:56)
        at java.util.zip.ZipFile$1.hasMoreElements(ZipFile.java:485)
        at java.util.jar.JarFile$1.hasMoreElements(JarFile.java:239)
        at org.eclipse.jetty.util.resource.JarFileResource.exists(JarFileResource.java:163)
        at org.eclipse.jetty.webapp.WebAppContext.getResource(WebAppContext.java:319)
        at org.eclipse.jetty.webapp.WebAppContext$Context.getResource(WebAppContext.java:1220)
        at org.eclipse.jetty.servlet.DefaultServlet.getResource(DefaultServlet.java:365)
        at org.eclipse.jetty.server.ResourceCache.lookup(ResourceCache.java:188)
        at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:444)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:558)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1362)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilte
java:88)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1333)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:487)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:483)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:972)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:417)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:906)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
        at org.eclipse.jetty.server.Server.handle(Server.java:350)
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:442)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:910)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
        at java.lang.Thread.run(Thread.java:722)

   其实我应该是没有用到过zip这个东西才是,而且是静态文件出错,所以有可能是Jetty加载静态文件室,使用了gzip之类的压缩所以出错。

   但是我的另一个配置在Jetty里的应用却没有发生这样的问题,所以我觉得这个错误一定和我的应用本身有关。

    再往前查看 日志 发现

2013-07-25 23:43:25.889:WARN:oejj.ObjectMBean:No mbean getter or setters found for maxCookieAge in class org.eclipse.jetty.server.session.HashSessionManager七月 25, 2013 11:43:25 下午 com.sun.faces.config.ConfigureListener contextInitialized
信息: 初始化上下文 '/SAMS' 的 Mojarra 2.0.3 (FCS b03)七月 25, 2013 11:43:26 下午com.sun.faces.spi.InjectionProviderFactory createInstance
信息: JSF1048:有 PostConstruct/PreDestroy 注释。标有这些注释的 ManagedBeans 方法将表示注释已处理。

    google了一下出现  初始化上下文 '/SAMS' 的 Mojarra 2.0.3 的应该就是出现了包冲突。

    冲突的包就是 有 com.sun.faces.config.ConfigureListener  这个类的包

    ConfigureListener是jsf-impl.jar中的一个类,在lib下把 这个包删了就好了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM