Pregunta

Tengo un trabajo webapp en JBoss COMO 5.1.0 GA.Que utiliza Mojarra 2.0.4 frascos.Estoy en un proceso de migración de este en JBoss COMO 7.1.1.Esta versión de JBoss se entregan con 2.1.7.Así que rebajó la Mojarra versión mediante la definición de las ranuras para 2.0.4 y referirse a ellos como dependencia en el META-INF/jboss-deployment-structure.xml junto con otras dependencias.

jboss-deployment-structure.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
  <deployment>
    <exclusions>
          <module name="javax.faces.api" slot="main"/>
          <module name="com.sun.jsf-impl" slot="main"/>
          <module name="javax.faces.api" slot="1.2"/>
          <module name="com.sun.jsf-impl" slot="1.2"/>          
        </exclusions>
        <dependencies>
          <module name="org.hibernate.validator" export="true"/>
          <module name="javax.validation.api" export="true"/>
          <module name="com.google.gson" export="true"/>
          <module name="org.codehaus.jettison" export="true"/>
          <module name="org.jboss.resteasy.resteasy-jaxrs" export="true"/>
          <module name="org.jboss.resteasy.resteasy-jackson-provider" export="true"/>
          <module name="org.apache.log4j" export="true"/>
          <module name="org.jboss.as.web" slot="main" export="true"/>
          <module name="javax.faces.api" slot="2.0.4" export="true"/>
          <module name="com.sun.jsf-impl" slot="2.0.4" export="true"/>       
        </dependencies>
  </deployment>   
 </jboss-deployment-structure>

Esto causó la siguiente excepción en la implementación

12:51:18,761 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) Initializing Mojarra 2.0.4 (FCS b09) for context ''
12:51:20,355 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) Unsanitized stacktrace from failed start...: javax.faces.FacesException: Class org.jboss.as.web.deployment.jsf.JandexAnnotationProvider is not an instance of com.sun.faces.spi.AnnotationProvider

A la que me refería este enlace y modificado mi dependencias de la siguiente manera

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
  <deployment>
        <exclusions>
          <module name="javax.faces.api" slot="main"/>
          <module name="com.sun.jsf-impl" slot="main"/>
          <module name="javax.faces.api" slot="1.2"/>
          <module name="com.sun.jsf-impl" slot="1.2"/>
          <module name="org.jboss.as.web" slot="main" />
        </exclusions>
        <dependencies>
          <module name="org.hibernate.validator" export="true"/>
          <module name="javax.validation.api" export="true"/>
          <module name="com.google.gson" export="true"/>
          <module name="org.codehaus.jettison" export="true"/>
          <module name="org.jboss.resteasy.resteasy-jaxrs" export="true"/>
          <module name="org.jboss.resteasy.resteasy-jackson-provider" export="true"/>
          <module name="org.apache.log4j" export="true"/>
          <module name="org.jboss.as.web" slot="main" export="true"/>
          <module name="javax.faces.api" slot="2.0.4" export="true"/>
          <module name="com.sun.jsf-impl" slot="2.0.4" export="true"/>
          <module name="org.jboss.as.web" slot="main">
          <imports>
            <include path="/org/**" />
            <exclude path="/META-INF/**" />
          </imports>
          </module>
        </dependencies>
  </deployment>   
 </jboss-deployment-structure>

Que se deshizo de el error en la implementación sino que introdujo la siguiente excepción en tiempo de ejecución

12:59:19,434 ERROR [stderr] (http--0.0.0.0-8080-4) java.lang.IllegalArgumentException: null source
12:59:19,435 ERROR [stderr] (http--0.0.0.0-8080-4)  at java.util.EventObject.<init>(EventObject.java:38)
12:59:19,436 ERROR [stderr] (http--0.0.0.0-8080-4)  at javax.faces.event.SystemEvent.<init>(SystemEvent.java:71)
12:59:19,444 ERROR [stderr] (http--0.0.0.0-8080-4)  at javax.faces.event.ComponentSystemEvent.<init>(ComponentSystemEvent.java:73)

y

12:59:19,489 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/].[Faces Servlet]] (http--0.0.0.0-8080-4) Servlet.service() for servlet Faces Servlet threw exception: java.lang.NullPointerException
    at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:431) [jsf-impl.jar:2.0.4-b09]
    at com.sun.faces.context.PartialViewContextImpl.access$300(PartialViewContextImpl.java:72) [jsf-impl.jar:2.0.4-b09]
    at com.sun.faces.context.PartialViewContextImpl$DelayedInitPartialResponseWriter.getWrapped(PartialViewContextImpl.java:559) [jsf-impl.jar:2.0.4-b09]

Me imaginé (buscando en google, por supuesto) que la excepción a menudo es causada por tres cosas

  1. No válido/no cerrado etiquetas utilizadas en xhtml (erróneamente propagan excepción)
  2. Tiempo de espera de sesión (erróneamente propagan excepción)
  3. Límite en el número de parámetros POST en Tomcat

Por desgracia, los dos primeros no fueron la causa.Me encontré con mi errónea de las páginas xhtml a través de los validadores y se encontró que el marcado era válido, ni fue mi sesión ha expirado.Yo también aumentó la org.apache.tomcat.util.http.Parameters.MAX_COUNT a 5000 en standalone.xml para abordar el tercer punto.El error persiste.

También he intentado migrar a la predeterminada incluido Mojarra versión 2.7.1.Que impedía la primera excepción en tiempo de ejecución, pero el segundo se mantuvo.La única cosa curiosa sobre esas páginas causante de este error es que ellos tienen de las llamadas ajax en ellos.Curiosamente, la aplicación está funcionando bien con 5.1.0 GA, así que si mi margen de ganancia es errónea, ella me habría dado un tiempo difícil en 5.1.0 así, que no lo hizo.Por lo tanto no válida marcado es raro.Los punteros muy apreciada!

ACTUALIZACIÓN:Acaba de enterarse de que la línea en PartialViewContextImpl.java:431 muestra que la ctx.getRenderKit() es la evaluación a null.Ni idea por qué a pesar de que

UPDATE2:Resulta que el problema es visto sólo si puedo usar html puro de entrada de los componentes dentro de la forma de decir <input type="text">, <select> etc.Si puedo quitar los de la <h:form> o puedo convertir de ellos en los correspondientes etiquetas JSF, funciona bien.Algo va terriblemente mal en algún lugar.Yo no soy capaz de averiguar excatly si esto es causado por jboss, Mojarra o específicamente de mi aplicación.He probado con un sencillo JSF app y no tuvo errores de si estoy o no de usar el código html de entrada etiquetas.Así que la combinación de mi aplicación y jboss 7.x que está causando esto.Alguna idea?

¿Fue útil?

Solución

Por fin!El problema estaba relacionado con un error en Mojarra 2.1.7 como se informó aquí

La Solución es dar un nombre atributo para cada código html puro componente incluido en <h:form>.La parte que yo no podía entender que este error parece estar relacionado con Mojarra 2.1.7.Y los frascos he configurado para que mi aplicación se 2.0.4 versión, sin embargo, el error fue visto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top