當我部署在JBoss中我.war文件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鑽嘴魚科2.0.6-FCS
看來JBoss的不採摘正確的JAR文件,我在我的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]
我怎樣才能解決我的問題?
您是否在jboss-deployment-structure文件中排除了JBoss 7.1默認的JSF jar? – kosa
我試過了,不知道怎麼做,但是我把下面的文件jboss-deployment-structure.xml添加到WEB-INF \我在上面的消息中編輯的內容。但它給出了一個錯誤(也添加到我的問題上面) – roel