Jetty 上的 JSF2 随机给出“zip 文件已关闭”,但在从 Maven jetty 插件运行时有效 (jetty:run)

2023-12-15

我的 JSF Web 应用程序在访问文件(如图像、css、js)时随机出现错误:“zip 文件已关闭”。它部署在 Jetty 7 上。看起来其中一些文件未加载(页面上缺少一些图像)。

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)

当我使用 jetty:run 或 jetty:run-war 从 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>   

知道它会是什么吗?


This issue已在 jetty-7.6.0.RC2 中修复。该错误是由 JVM 缓存 jar url 连接流引起的。

根据错误报告,您还需要将以下内容添加到 jetty.xml 中:

 <Set class="org.eclipse.jetty.util.resource.Resource" name="defaultUseCaches">false</Set>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetty 上的 JSF2 随机给出“zip 文件已关闭”,但在从 Maven jetty 插件运行时有效 (jetty:run) 的相关文章

随机推荐

  • 阻止扫描仪读取用户输入java?

    我正在尝试编写这个方法 它会不断从用户那里读取数据 直到输入 退出 一词 我尝试使用break和for循环 它不起作用 我尝试使用 while 但即使输入 退出 一词 它也不会停止 任何想法如何解决这一问题 谢谢 public void r
  • msysgit - sh.exe - fork:权限被拒绝 - Vista 64 位

    我在其他 Windows 机器上安装 msysgit 没有任何问题 在这个 Vista 64 位 Ultimate 机器上 我安装了 3 个最新版本的 msysgit 在所有三个安装中 当我在此处执行 git bash 时 我会在命令窗口中
  • ggplot 中 Hmisc 标记对象的问题

    我收到消息 错误 没有适用于 round any 的方法应用于对象 标记 类 当我尝试使用绘制图表时ggplot2和 R 我已经在我的数据框中标记了我的变量Hmisc label我认为这就是问题所在 我该如何解决这个问题 我的标签如下所示
  • 为什么css高度100%不适用于普通div?

    这是我的简单代码 div div CSS高度100 不适用于DIV 我知道一些其他的 css 代码来获取这个 但为什么这段代码不起作用 如何在没有任何脚本的情况下处理高度 100 和宽度 100 For 要工作 您需要设置高度parent
  • 使用 travis-ci 和 wxpython 测试

    我正在尝试添加一些 wxPython 测试以与 travis ci 一起使用 但我不知道如何在构建环境中安装 wxPython 我使用brew在我的计算机上安装了wxPython 但是我无法让brew与travis ci一起使用 在 tra
  • 如何使用 PHP-Parser 获取全局变量名称并更改它

    我想用PHP解析器库来获取全局方法 POST GET REQUEST 获取 PHP 中的值 我在用着PHP解析器我想检查节点名称是否等于 POST GET REQUEST 我还是 PHP Parser 的初学者 不知道如何获取这些全局变量
  • 尽管值在 getPreviewFpsRange 的范围内,但 setPreviewFpsRange 不起作用

    这个简单的代码 Camera Parameters params currentCamera getParameters params setPreviewFpsRange 10000 15000 currentCamera setPara
  • JSPDF - 如何将具有不同页面尺寸(高度和宽度)的多个图像导出到单个 pdf 文件

    我有多个不同尺寸 高度和宽度 的图像 需要使用 jspdf 将其转换为 PDF 但使用时遇到问题addPage 函数来做到这一点 是否可以将不同页面大小的图像导出到单个 pdf 中 我实际上可以使用以下命令添加具有不同图像尺寸的多个页面ad
  • JPanel 上的 MouseEvent - 坐标错误

    我用Java编写了以下微型画笔程序 import java awt BorderLayout import java awt Color import java awt Container import java awt Graphics
  • Clojure 的 :require 和 Instaparse

    我正在尝试使用即时解析我的 Clojure 项目的 lib 我在项目依赖项中使用 leiningen 2 0 和 clojure 1 5 1 我将 instaparse 添加到我的项目依赖项中 如下所示 defproject bachelo
  • 实现 DHCP 客户端

    在使用 C 的 UNIX 上 我的客户端正在以超级用户模式侦听端口 68 发送 DHCP 发现消息后 当我尝试接收时 它会阻塞在 recvfrom 中 这意味着没有收到消息 或者系统是否有一个进程 DHCP 客户端 在同一端口 68 上监听
  • 如何在新项目中重用 Eclipse 启动文件

    我刚刚在 eclipse 中检查了一个 svn 项目作为 java 项目 其中有几个运行启动文件我想重用 但不知道如何指向 运行 来查看这些启动文件或使用它 有什么建议吗 谢谢 通常这些会被项目自动选取并放置在运行菜单中 如果不是 请右键单
  • Google 表单中的 FILE_UPLOAD 项目类型

    谷歌最近在其表单中添加了文件上传功能 但是 我无法找到任何有关如何在谷歌脚本中使用它的文档 如果我在 google 上查看 item types API 它没有列出 https developers google com apps scri
  • iOS 音频操作 - 向后播放本地 .caf 文件

    我想要加载本地 caf 音频文件并反转音频 向后播放 我发现我基本上需要从帖子中翻转一系列缓冲区数据this 但是 我不确定如何从给定的音频文件访问此缓冲区数据 我有一些使用 AVaudioPlayer 和 ObjectAL 一个 obj
  • 对空值使用空检查运算符

    我是新来的Flutter 当我运行我的简单扑动应用程序时 出现此错误 我不明白为什么会发生这个错误 Error Null check operator used on a null value 我在 main dart 中的代码 impor
  • 如何在ASP.NET Core 3.1 MVC中进行RequiredIf客户端和服务器端验证?

    我必须在 ASP NET Core 3 1 中进行客户端和服务器端验证 我浏览了很多博客 但对 ASP NET Core MVC 没有足够的了解 我必须进行必需的验证 什么时候BusinessType is Business the VAT
  • 在多维数组中搜索值并返回新数组

    过去几个小时一直在为此苦苦挣扎 尝试为数组构建一个搜索函数 然后输出一个包含所有具有关键字的数组的新函数 这是我正在使用的函数 不确定这是否朝着正确的方向前进 它返回数组中的数组 这不是我想要的 function search array
  • 在本地主机中运行 laravel 项目

    我已经通过composer create project laravel laravel prefer dist安装了laravel 之后运行 php artisanserve 命令到 laravel 项目目录并得到这个结果 Laravel
  • 如何计算读入此列表的文件数量?

    我有一堆 csv 文件 我正在将它们读入如下列表中 f lt list files pattern 201 d 5 csv 有什么方法可以计算我正在读入的文件数量吗 Yes length f 会给你文件名的数量f
  • Jetty 上的 JSF2 随机给出“zip 文件已关闭”,但在从 Maven jetty 插件运行时有效 (jetty:run)

    我的 JSF Web 应用程序在访问文件 如图像 css js 时随机出现错误 zip 文件已关闭 它部署在 Jetty 7 上 看起来其中一些文件未加载 页面上缺少一些图像 java lang IllegalStateException