10

.warファイルをJBossAS7.1.1にデプロイして、

FacesContext.class.getPackage().getImplementationTitle() 

FacesContext.class.getPackage().getImplementationVersion()

tomcatにデプロイすると、異なるバージョンが取得されます。

JBoss:JSF JavaServer Faces API2.0.1.Final

Tomcat:JSF Mojarra 2.0.6-FCS

JBossが私の中にある正しいJARを選択していないようですWEB-INF\lib\。これにより、私のWebサイトで異なる動作が発生します。私は問題を解決しようとしました

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

しかし、それはうまくいきませんでした。JBoss 71を使用した代替JSF実装を読みましたが、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]

どうすれば問題を解決できますか?

4

2 に答える 2

3

JSF APIに依存する他の何かがありますか?JBossとTomcatで異なる理由はわかりませんが、JSFを除外した場合と除外した場合でmvndependency:treeとmvndependency:analyzeを実行してみてください。

于 2012-08-05T19:19:37.263 に答える