2012-05-09 4 views
8

Когда я раскрываю мой файл .war в JBoss AS 7.1.1 и вызватьJBoss AS 7.1.1 не поднимая мою реализацию JSF

FacesContext.class.getPackage().getImplementationTitle() 

и

FacesContext.class.getPackage().getImplementationVersion() 

я получаю другую версию, то когда я развертываю его на tomcat.

JBoss: JSF JavaServer Faces API 2.0.1.Final

Tomcat: JSF Mojarra 2.0.6-FCS

кажется JBoss не выбирает правильные JARs, что у меня есть в моем WEB-INF\lib\. Это приводит к поведению на моем сайте. я пытался решить проблему с

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

Но это не сработало. Я прочитал Alternative JSF implementation with JBoss 71, но, по-видимому, он не решен в 7.1.1.

Я добавил jboss-deployment-structure.xml в WEB-INF\ со следующим содержанием.

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

Но мое приложение не развернуто, и я получаю следующие ошибки в 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] 

Как я могу решить мою проблему?

+0

Вы исключали JSF-JS-JS-JS-JSF-jars в файле структуры jboss-deployment-structure? – kosa

+0

Я пробовал, не знаю, как, но я добавил следующий файл jboss-deployment-structure.xml в WEB-INF \ Содержимое, которое я редактировал в своем сообщении выше. Но он дает ошибку (также добавил его к моему вопросу выше) – roel

ответ

3

Может ли быть что-то еще, что зависит от API JSF? Я не уверен, почему было бы иначе между JBoss и Tomcat, но попробуйте запустить зависимость mvn: tree и mvn: анализировать с и без исключенного JSF.

+0

Привет, я не знаю maven (мы используем ant для создания наших проектов (и при разработке, мы используем экспорт eclipse) Как и с каким файлом я делаю что вы говорите? – roel

+0

Извините, я предположил, что вы использовали maven, вы можете запустить это против pom.xml. Посмотрите на эту [Jira] (https://issues.jboss.org/browse/AS7-3940?page = com.atlassian.jira.plugin.system.issuetabpanels: all-tabpanel), похоже, эта проблема не исправлена ​​до 7.1.3 – gebuh

1

JBoss AS 7.1.1 по умолчанию используется JSF 2, но обратно совместим с JSF 1.2.

Я была такая же проблема и решить ее следующим образом: Я использовал тот же jboss-deployment-structure.xml, как вы и добавили следующий параметр в web.xml:

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

Вам не понадобятся JSF 1.2 JARs в lib directory (и, следовательно, параметр org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL не нужен в web.xml).

Источник: http://tapas-tanmoy-bose.blogspot.ch/2014/01/how-to-run-jsf-12-application-in-jboss.html

Я подозреваю, JBoss AS 7.1.1 игнорировать исключенные модули jboss-deployment-structure.xml для JSF (но у меня есть org.hibernate в качестве другого исключенного модуля, который эффективно исключается, доказывая, что jboss-deployment-structure.xml учитывается) ,

Смежные вопросы