JBoss EAP 6 のデプロイメントでパッケージ化した MyFaces や Sun などの JSF を使用する
Issue
-
MyFaces JSF をパッケージ化しているアプリケーションを移行しています。デフォルトの Sun JSF 2 ではなく、JBoss EAP 6 で MyFaces を使用できるように JBoss を設定するにはどうしたら良いですか?
-
Sun RI JSF 2.0.3 以降のカスタムパッチを使用します。これは、アプリケーションで有効な唯一のバージョンで、JSF バージョンをアップグレードまたはダウングレードすることができません。この JSF は EAR そのものに同梱されます。以下のように、移行ドキュメントに記載されている手順に従いました。
<exclusions> <module name="javax.faces.api" slot="main"/> <module name="com.sun.jsf-impl" slot="main"/> </exclusions>
これを行っても、アプリケーションは起動しません。以下の例外を受け取りました。
Caused by: javax.faces.FacesException:Class org.jboss.as.web.deployment.jsf.JandexAnnotationProvider is not an instance of com.sun.faces.spi.AnnotationProvider
at com.sun.faces.spi.AnnotationProviderFactory.createAnnotationProvider(AnnotationProviderFactory.java:74) [jsf-impl-2.0.3.jar:2.0.3-SNAPSHOT]
at com.sun.faces.config.ConfigManager$AnnotationScanTask.<init>(ConfigManager.java:746) [jsf-impl-2.0.3.jar:2.0.3-SNAPSHOT]
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:324) [jsf-impl-2.0.3.jar:2.0.3-SNAPSHOT]
...9 more
- JBoss EAP 6.1 の場合、この問題の説明は https://community.jboss.org/message/829624#829624 も併せて参照してください。
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.4
- 6.3
- 6.2.0
- 6.1.0
- 6.0.1
- 6.0.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.