2012-05-09 10 views
8

Lorsque je déploie mon fichier .war dans JBoss AS 7.1.1 et appelleJBoss AS 7.1.1 ne ramassant mon implémentation de JSF

FacesContext.class.getPackage().getImplementationTitle() 

et

FacesContext.class.getPackage().getImplementationVersion() 

-je obtenir une version différente, alors quand je le déploie sur Tomcat.

JBoss: JSF JavaServer Faces API 2.0.1.Final

Tomcat: JSF Mojarra 2.0.6-FCS

Il semble JBoss ne sélectionne pas les fichiers JAR correct que j'ai dans mon WEB-INF\lib\. Cela provoque un comportement différent sur mon site Web. J'ai essayé de résoudre le problème avec

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

Mais cela n'a pas fonctionné. Je lis Alternative JSF implementation with JBoss 71 mais apparemment il n'est pas résolu en 7.1.1. J'ai ajouté jboss-deployment-structure.xml à WEB-INF\ avec le contenu suivant.

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

Mais mon application n'est pas et je reçois déployé les erreurs suivantes dans 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] 

Comment puis-je résoudre mon problème?

+0

Avez-vous exclu les fichiers jar JSF JBoss 7.1 par défaut dans le fichier jboss-deployment-structure? – kosa

+0

J'ai essayé, je ne sais pas comment mais j'ai ajouté le fichier suivant jboss-deployment-structure.xml à WEB-INF \ Le contenu que j'ai édité dans mon message ci-dessus. Mais ça donne une erreur (aussi ajouté à ma question ci-dessus) – roel

Répondre

3

Pourrait-il y avoir autre chose qui dépend de l'API JSF? Je ne sais pas pourquoi ce serait différent entre JBoss et Tomcat, mais essayez d'utiliser mvn dependency: tree et mvn dependency: analyser avec et sans le JSF exclu.

+0

Salut, je ne connais pas maven (nous utilisons ant pour construire nos projets (et en développement, nous utilisons jsut export eclipse) Comment et avec quel fichier je fais ce que vous dites? – roel

+0

désolé, je suppose que vous avez utilisé maven, vous exécuteriez cela contre le pom.xml. Jetez un oeil à ce [Jira] (https://issues.jboss.org/browse/AS7-3940?page = com.atlassian.jira.plugin.system.issuetabpanels: all-tabpanel), il semble que ce problème ne soit pas résolu avant le 7.1.3 – gebuh

1

JBoss AS 7.1.1 est par défaut avec JSF 2, mais est rétrocompatible avec JSF 1.2.

J'ai eu le même problème et résolu comme suit: J'utilisé la même jboss-deployment-structure.xml que vous et ajouté le paramètre suivant dans le web.xml:

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

Vous n'avez pas besoin JSF 1.2 JARs dans le lib répertoire (et donc le paramètre org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL n'est pas nécessaire dans web.xml).

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

Je soupçonne que JBoss AS 7.1.1 d'ignorer les modules exclus de jboss-deployment-structure.xml pour JSF (mais je org.hibernate comme un autre module exclu qui est effectivement exclu, ce qui prouve que le jboss-deployment-structure.xml est pris en compte) .

Questions connexes