Недавно тестировал компонент PrimeFaces "idleMonitor".
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h1>PrimeFaces and idleMonitor</h1>
<p:growl id="messages" showDetail="true" sticky="true"/>
<p:idleMonitor timeout="10000" update="messages">
<p:ajax event="idle" listener="#{idleBean.idleListener}" update="messages"/>
</p:idleMonitor>
</h:body>
</html>
Проблема
Через 10 секунд консоль запрашивает
java.io.IOException: не в формате GZIP
? Это странно, что GZIP нужно делать с компонентом
idleMonitor
?
INFO: Server startup in 4279 ms
Aug 8, 2012 2:42:48 PM com.sun.faces.renderkit.ClientSideStateHelper doGetState
SEVERE: Not in GZIP format
java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:141)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:56)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:65)
Решение
Чтобы это исправить, просто оберните все компоненты PrimeFaces тегом
form
. Не знаю почему, но это решило проблему.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h1>PrimeFaces and idleMonitor</h1>
<h:form>
<p:growl id="messages" showDetail="true" sticky="true"/>
<p:idleMonitor timeout="10000" update="messages">
<p:ajax event="idle" listener="#{idleBean.idleListener}" update="messages"/>
</p:idleMonitor>
</h:form>
</h:body>
</html>
Рекомендации
витрина idleMonitor]
ссылка://тег/gzip/[gzip]ссылка://тег/java-io/[java.io]ссылка://тег/primefaces/[primefaces]