Jsf Omnifaces GzipResponseFilter和页面重定向问题(仅限Glassfish)

Jsf Omnifaces GzipResponseFilter和页面重定向问题(仅限Glassfish),jsf,redirect,glassfish-3,omnifaces,Jsf,Redirect,Glassfish 3,Omnifaces,当我使用Omnifaces GzipResponseFilter(仅在Glassfish中)时,尝试在JSF操作中使用h:commandLink重定向页面时,我遇到了一个错误 异常:java.lang.IllegalStateException:当前状态=刷新,新状态=编码\u结束 环境 玻璃鱼3 Omnifaces 1.7(GzipResponseFilter) 莫哈拉2.1.27 jdk6 web.xml <filter> <filter-name>gzipR

当我使用Omnifaces GzipResponseFilter(仅在Glassfish中)时,尝试在JSF操作中使用h:commandLink重定向页面时,我遇到了一个错误

异常:java.lang.IllegalStateException:当前状态=刷新,新状态=编码\u结束

环境 玻璃鱼3 Omnifaces 1.7(GzipResponseFilter) 莫哈拉2.1.27 jdk6

web.xml

<filter>
    <filter-name>gzipResponseFilter</filter-name>
    <filter-class>org.omnifaces.filter.GzipResponseFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>gzipResponseFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
page.xhtml

<h:commandLink action="#{myBean.doAction()}">Click</h:commandLink>

我们无法通过重定向来解决问题,但是当我在f:ajax中使用“h:commandLink”时,Faces.redirect()可以正常工作。 在常规“h:commandLink”、init或preRender方法上调用Faces.redirect()时失败。
我将打开一个Omnifaces问题进行讨论。

确切地说是哪一个GF3版本?尝试过更新的版本吗?我使用的是3.1.1版本。我使用这个版本是因为这是我客户的环境。你对这个问题有什么看法?在omnifaces项目上讨论这个问题更好吗?
<h:commandLink action="#{myBean.doAction()}">Click</h:commandLink>
java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING_END
    at java.nio.charset.CharsetEncoder.throwIllegalStateException(CharsetEncoder.java:951)
    at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:537)
    at sun.nio.cs.StreamEncoder.flushLeftoverChar(StreamEncoder.java:223)
    at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:282)
    at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:130)
    at java.io.OutputStreamWriter.close(OutputStreamWriter.java:216)
    at org.omnifaces.io.ResettableBufferedWriter.close(ResettableBufferedWriter.java:98)
    at java.io.PrintWriter.close(PrintWriter.java:295)
    at org.omnifaces.servlet.HttpServletResponseOutputWrapper.close(HttpServletResponseOutputWrapper.java:149)
    at org.omnifaces.servlet.GzipHttpServletResponse.close(GzipHttpServletResponse.java:133)
    at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:150)
    at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)