javax.faces.FacesException: Fehler beim Dekodieren der Ressourcendaten beim Laden der JSF-Seite

Beim Laden der JSF-Seite wird der folgende Fehler angezeigt. Die Seite wird erfolgreich geladen und der gewünschte Vorgang auf der Seite wird ebenfalls ausgeführt, aber dieser Fehler tritt auf.

Die jsf-Seite enthält Registerkarten, und beim Klicken auf die einzelnen Registerkarten wird der Fehler angezeigt. Außerdem habe ich festgestellt, dass, wenn ich einen bestimmten Teil meiner Seite als gerendert = falsch behalte, der Fehler nicht auftritt, der Teil jedoch erneut nicht gerendert wird.

Ich verwende JSF2.0 mit JSPs. und 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>

Code-Snippet von jsf-Seite und -Komponente, das, wenn es in bean = false gerendert wird, den oben genannten Fehler nicht auslöst.

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

Wenn outputPanel zum Rendern an das Backing Bean gebunden ist und der Wert ursprünglich auf false gesetzt ist, tritt der Fehler nicht auf. Beim erneuten Rendern des outputPanel wird das outputPanel jedoch nie angezeigt.

Grundsätzlich tritt das Problem beim Einbeziehen von Komponenten auf. Ich habe 4 Registerkarten auf der Seite. Auf zwei Registerkarten verwende ich den Listenshuttle (2 Komponenten auf jeder Registerkarte). Auf beiden Registerkarten sind die an listshuttle gebundene Arrayliste von Quelle und Ziel identisch.

Liegt es daran, dass ich die gleiche Liste an beide Shuttles binde. Der gleiche Code in einem anderen Tab funktioniert jedoch einwandfrei.

ListShuttle-Code: -

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

ArrayList-Code: -

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

In einer Funktion

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

Die mögliche Antwort für diesen Beitrag ist, dass ich mit einigen Browserproblemen konfrontiert bin.

Wenn auf dieselbe Anwendung von einem anderen Computer aus zugegriffen wird, gibt es absolut keine Ausnahme ... Dies ist seltsam, da ich Firefox 11.0 verwende und ein anderer Computer Firefox 4.0 verwendet

Kann das wirklich ein Problem mit dem Browser sein?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage