jsf-2 - template - ui define jsf
javax.faces.FacesException: Error al decodificar datos de recursos al cargar la página JSF (3)
El problema ahora está ocurriendo de manera muy prominente en todas las actualizaciones de Firefox> 10.0. Hay algún cambio en la secuencia de comandos del navegador Firefox que no permite que el árbol se lea correctamente.
Por favor, agregue lo siguiente en su proyecto para eliminar todos los problemas relacionados con el navegador Firefox:
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class RichFacesFirefox11Filter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(new HttpServletRequestWrapper((HttpServletRequest) request) {
@Override
public String getRequestURI() {
try {
return URLDecoder.decode(super.getRequestURI(), "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new IllegalStateException("Cannot decode request URI.", e);
}
}
}, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// do nothing
}
@Override
public void destroy() {
// do nothing
}
}
Y haga la entrada de este filtro en su archivo web.xml también.
<filter>
<filter-name>RichFacesFirefox11Filter</filter-name>
<filter-class>Packagename.RichFacesFirefox11Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>RichFacesFirefox11Filter</filter-name>
<url-pattern>/a4j/*</url-pattern>
</filter-mapping>
Esto seguramente eliminará todos sus problemas relacionados con los navegadores Firefox y los componentes de RichFaces.
Recibo el siguiente error al cargar la página JSF. La página se carga correctamente y también se realiza la operación deseada en la página, pero aparece este error.
La página jsf contiene paneles de pestañas y al hacer clic en cada panel de pestañas, aparece el error. También descubrí que si mantengo cierta parte de mi página como prestada = falsa, entonces el error no aparece, pero la porción nuevamente no se reintegra.
Estoy usando JSF2.0 con JSPs. y RF3.3
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
Fragmento de código de la página jsf y componente que cuando se representa = falso en bean no arroja el error mencionado anteriormente.
<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>
Si outputPanel se une al bean de respaldo para el renderizado y, en primer lugar, el valor se establece en falso, el error no aparece. Sin embargo, al volver a distribuir outputPanel, el outputPanel nunca aparece.
El problema básicamente está apareciendo en incluir componentes. Tengo 4 pestañas en la página. En dos pestañas estoy usando el listshuttle (2 componentes en cada pestaña). En ambas pestañas, la lista de arrays de origen y destino enlazadas a listas es la misma.
¿Es debido a esto que estoy vinculando la misma lista a ambos transbordadores? Sin embargo, el mismo código en otra pestaña funciona absolutamente bien ....
Código ListShuttle: -
<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>
Código ArrayList: -
ArrayList<String> lstAvailable=new ArrayList<String>();
Dentro de alguna función
lstAvailable=class.function(Some variable))
this.setLstAvailable(lstAvailable);
La posible respuesta para esta publicación como se observa es que estoy enfrentando algún tipo de problema con el navegador.
Cuando se accede a la misma aplicación desde otra máquina, no hay absolutamente ninguna excepción ... Esto es extraño ya que estoy usando Firefox 11.0 y otra máquina tiene Firefox 4.0
¿Esto realmente puede ser un problema con el navegador?
No tengo dudas de que la respuesta de AnglesAndDemons es correcta aquí, pero por alguna razón no pude hacerlo funcionar. Estoy usando Richfaces 3.3.3 Final, y lo que funcionó, fue la descarga de los parches richfaces-impl.jar del tema de JIRA https://issues.jboss.org/browse/RF-12062
Primero, el <rich:tabPanel>
que envuelve cada <rich:tab>
debe estar dentro de un form
(verifique la nota en la documentación), por lo que el formulario dentro de la pestaña no es necesario. Además, si desea llamar a una acción del servidor cuando hace clic en alguna pestaña, debe verificar switchType
con el valor del server
.
Una cosa más, tal vez su código XHTML dentro del <a4j:outputPanel>
contiene errores, sería mejor si actualiza su publicación con un código completo o más de ese código.