javax.faces.FacesException: Błąd podczas dekodowania danych zasobów podczas ładowania strony JSF

Otrzymuję poniższy błąd podczas ładowania strony JSF. Strona zostanie załadowana pomyślnie, a żądana operacja na stronie również zostanie wykonana, ale ten błąd pojawia się.

Strona jsf zawiera panele kart i po kliknięciu każdego panelu karty pojawia się błąd. Odkryłem również, że jeśli utrzymam pewną część mojej strony jako renderowaną = false, to błąd nie nadchodzi, ale część nie jest ponownie wysyłana.

Używam JSF2.0 z JSP. i RF3.3

<code>ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
javax.faces.FacesException: Error decode resource data
at org.ajax4jsf.resource.ResourceBuilderImpl.decrypt(ResourceBuilderImpl.java:627)
at org.ajax4jsf.resource.ResourceBuilderImpl.getResourceDataForKey(ResourceBuilderImpl.java:371)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:156)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:508)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.zip.DataFormatException: incorrect data check
at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Inflater.java:238)
at java.util.zip.Inflater.inflate(Inflater.java:256)
at org.ajax4jsf.resource.ResourceBuilderImpl.decrypt(ResourceBuilderImpl.java:621)
    ... 25 more
</code>

Fragment kodu strony i komponentu jsf, który po renderowaniu = false w komponencie bean nie zgłasza wyżej wymienionego błędu.

<code><rich:tab ignoreDupResponses="true" id="tabModify"
    style="overflow:auto" styleClass="richTab" label="#{}"
    eventsQueue="queueForTab" actionListener="#{}">
    <rich:layout>
        <rich:layoutPanel position="right" id="pnlmodfy">
            <h:form id="frmModify">
                <h:panelGrid>
                    <h:outputLabel value="#{} * :" escape="false" styleClass="intro" />
                    <h:outputText value=" : " styleClass="intro" />
                    <rich:comboBox id="Mdfy" value="#{Bean.str}"
                        suggestionValues="#{Bean.arraylist}">
                        <a4j:support id="id"
                            actionListener="#{Bean.actionListener}"
                            ajaxSingle="true" event="onchange" reRender="modify">
                        </a4j:support>
                    </rich:comboBox>
                </h:panelGrid>
                <a4j:outputPanel id="modify" ajaxRendered="true">
                    <h:panelGrid columns="3" id="modify">
                        <h:outputText value="Description *" styleClass="intro"/>
                        <h:outputText value=" : " styleClass="intro" />
                        <h:inputTextarea id="Desc" required="true"
                            styleClass="textBox" label="Description"
                            value="#{Bean.strDesc}">
                        </h:inputTextarea>
</code>

Jeśli outputPanel wiąże się z tworzeniem kopii zapasowej komponentu bean do renderowania i początkowo wartość jest ustawiona na false, błąd nie nadchodzi. Jednak po ponownym wyświetleniu outputPanel, outputPanel nigdy się nie pojawia.

Problem pojawia się zasadniczo na włączeniu komponentu. Mam 4 zakładki na stronie. Na dwóch kartach używam listshuttle (2 składniki na każdej karcie). Na obu kartach arytmetyka źródła i celu powiązanego z listshuttle są takie same.

Czy to dlatego, że wiążę tę samą listę z obydwoma wahadłowcami. Jednak ten sam kod na innej karcie działa absolutnie dobrze.

Kod ListShuttle: -

<code><h:outputText value="Select" styleClass="intro" rendered="#{!empty Bean.lstAvailable}"/>
<h:outputText value=" : " styleClass="intro" />
<rich:listShuttle id="listShuttleN" sourceValue="#{Bean.lstAvailable}" targetValue="#{KPIManagement.lstSelected}"  var="items" listsHeight="100" sourceListWidth="100" targetListWidth="100" sourceCaptionLabel="Available" targetCaptionLabel="Selected" rendered="#{!empty Bean.lstAvailable}">       
<rich:column>
<h:outputLabel value="#{items}"></h:outputLabel>
</rich:column>
</rich:listShuttle>
</code>

Kod ArrayList: -

<code>ArrayList<String> lstAvailable=new ArrayList<String>();
</code>

Wewnątrz jakiejś funkcji

<code>lstAvailable=class.function(Some variable))
this.setLstAvailable(lstAvailable);
</code>

Możliwą odpowiedzią na ten post jest obserwacja, że ​​mam problemy z przeglądarką.

Gdy uzyskuje się dostęp do tej samej aplikacji z innej maszyny, nie ma absolutnie żadnego wyjątku ... To dziwne, ponieważ używam Firefoksa 11.0, a inna maszyna ma Firefoksa 4.0

Czy to może być problem z przeglądarką?

questionAnswers(3)

yourAnswerToTheQuestion