2012-05-09 16 views
8

Cuando despliego mi archivo .war en JBoss AS 7.1.1 y llamoJBoss AS 7.1.1 no recoger mi implementación JSF

FacesContext.class.getPackage().getImplementationTitle() 

y

FacesContext.class.getPackage().getImplementationVersion() 

puedo obtener una versión diferente a continuación, cuando lo despliegue en tomcat.

JBoss: JavaServer Faces JSF API 2.0.1.Final

Tomcat: JSF Mojarra 2.0.6-FCS

Parece JBoss no está recogiendo los JAR correctas que tengo en mi WEB-INF\lib\. Esto causa un comportamiento diferente en mi sitio web. traté de resolver el problema con

<context-param> 
    <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name> 
    <param-value>true</param-value> 
</context-param> 

Pero eso no funcionó. Leo Alternative JSF implementation with JBoss 71 pero aparentemente no está resuelto en 7.1.1.

He añadido jboss-deployment-structure.xml a WEB-INF\ con el siguiente contenido.

<jboss-deployment-structure> 
<deployment> 
    <exclusions> 
     <module name="javax.faces.api" slot="main"/> 
     <module name="com.sun.jsf-impl" slot="main"/> 
    </exclusions> 
    <dependencies> 
     <module name="org.apache.commons.logging" /> 
     <module name="org.apache.commons.collections" /> 
     <module name="org.apache.log4j" /> 
     <module name="org.dom4j" /> 
     <module name="javax.faces.api" slot="1.2"/> 
     <module name="com.sun.jsf-impl" slot="1.2"/> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

Pero entonces mi aplicación no está desplegada y me sale el siguiente error en server.log:

14:06:14,733 SEVERE [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-4) Critical error during deployment: : com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Class org.jboss.as.web.deployment.jsf.JandexAnnotationProvider is not an instance of com.sun.faces.spi.AnnotationProvider 
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:357) [jsf-impl.jar:2.0.6-FCS] 

¿Cómo puedo solucionar mi problema?

+0

¿Excluyó JBoss JSF Jars predeterminados en el archivo jboss-deployment-structure? – kosa

+0

Lo intenté, no estoy seguro de cómo, pero agregué el siguiente archivo jboss-deployment-structure.xml a WEB-INF \ Los contenidos que edité en mi mensaje anterior. Pero da un error (también lo agregué a mi pregunta anterior) – roel

Respuesta

3

¿Podría haber algo más que dependa de la API de JSF? No estoy seguro de por qué sería diferente entre JBoss y Tomcat, pero intente ejecutar la dependencia mvn: tree y mvn dependency: analice con y sin el JSF excluido.

+0

Hola, no sé maven (utilizamos la hormiga para construir nuestros proyectos (y cuando desarrollamos, no usamos exportación de eclipse) ¿Cómo y con qué archivo hago? lo que dices? – roel

+0

lo siento, asumí que usaste maven, lo ejecutarías contra el pom.xml. Echa un vistazo a esto [Jira] (https://issues.jboss.org/browse/AS7-3940?page) = com.atlassian.jira.plugin.system.issuetabpanels: todo TabPanel), parece que este problema no se fija hasta 7.1.3 – gebuh

1

JBoss AS 7.1.1 es por defecto con JSF 2, pero es compatible con JSF 1.2.

que tenían el mismo problema y lo resolvió de la siguiente manera: He utilizado la misma medida que jboss-deployment-structure.xml y añade la siguiente parámetro en el web.xml:

<context-param> 
<param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name> 
<param-value>Mojarra-1.2</param-value> 
</context-param> 

No es necesario los JSF 1.2 JAR en el lib directorio (y por lo tanto el parámetro org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL no es necesario en web.xml).

Fuente: http://tapas-tanmoy-bose.blogspot.ch/2014/01/how-to-run-jsf-12-application-in-jboss.html

sospecho JBoss AS 7.1.1 ignorar los módulos excluidos de jboss-deployment-structure.xml para JSF (pero tengo org.hibernate como otro módulo excluidos que se excluye de manera efectiva, lo que demuestra que el jboss-deployment-structure.xml se tiene en cuenta) .

Cuestiones relacionadas