Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 码头上的JSF2随机给出';zip文件已关闭';但在从maven jetty插件(jetty:run)运行时工作_Jsf 2_Jetty - Fatal编程技术网

Jsf 2 码头上的JSF2随机给出';zip文件已关闭';但在从maven jetty插件(jetty:run)运行时工作

Jsf 2 码头上的JSF2随机给出';zip文件已关闭';但在从maven jetty插件(jetty:run)运行时工作,jsf-2,jetty,Jsf 2,Jetty,我的JSF web应用程序在访问文件(如图像、css、js)时随机出现错误:“zip文件已关闭”。它部署在7号码头上。看起来有些文件没有加载(页面上缺少一些图像) 当我使用jetty:run或jetty:runwar从maven插件(7.x)运行它时,我没有得到任何错误。 此外,只有在独立jetty上运行时,访问web上下文的根路径才会出现“zip文件关闭”错误,但在maven pluging上运行时不会出现此类错误,然后就是那些目录视图 My web.xml: <servlet&g

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

当我使用jetty:run或jetty:runwar从maven插件(7.x)运行它时,我没有得到任何错误。 此外,只有在独立jetty上运行时,访问web上下文的根路径才会出现“zip文件关闭”错误,但在maven pluging上运行时不会出现此类错误,然后就是那些目录视图

My 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>

Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
/面孔/*
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>   
。。。。
com.sun.faces
JSFAPI
2.1.3
com.sun.faces
jsf impl
2.1.3
javax.servlet
jstl
1.2
塔格利布
标准
1.1.2
....
org.mortbay.jetty
jetty maven插件
7.5.1.v20110908
10
com.sun.faces
JSFAPI
2.1.3
com.sun.faces
jsf impl
2.1.3

知道会是什么吗?

Jetty在WEB-INF/lib中的jar文件中查找您的资源。当它搜索jsf-impl.jar时,它以某种方式被关闭,可能是由jsf请求关闭的。也许jsf自己处理资源,自己处理文件


无论如何,解决方案似乎是将jsf JAR从war文件中移出。将jsf依赖范围设置为提供,这样maven就不会将它们打包到war文件中,并将它们放在服务器上,可能放在jetty standalone的lib文件夹中

我遇到了同样的问题,通过转到
etc\webdefault.xml
并将此参数更改为
false
,成功地解决了这个问题:

<init-param>
  <param-name>gzip</param-name>
  <param-value>true</param-value>
</init-param>

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

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

 <Set class="org.eclipse.jetty.util.resource.Resource" name="defaultUseCaches">false</Set>
false

我们在SUSE Linux Enterprise Server 11 SP1上遇到了相同的问题,我们尝试将jetty.maven.plugin降级到7.2.2,但问题仍然存在。zip错误是随机的,在浏览器中重新加载可以修复用户的问题(意味着获取缺少的img或css)。然而,对我们来说,这不是一个解决办法。我们已经验证了这些资源已在文件系统上解包,Jetty具有访问它们的权限。其他任何人有相同的问题,或者最好是解决方案?我正在使用jetty serverlet,它的7.6.16版本会解决这个问题吗?根据问题跟踪程序,应该在版本>=7.5.4中解决。你在7.6.16中看到了吗?
 <Set class="org.eclipse.jetty.util.resource.Resource" name="defaultUseCaches">false</Set>