jboss-jsf-api_2.1_spec-2.0.1.Final.jar
JBoss サーバーで Mojarra をアップグレードし、起動ログに示されているようにJBoss 独自の JAR ではなく、指定された Mojarra 2.x JAR を使用するように指示するにはどうすればよいですか?
関係があるかどうかはわかりませんが、現在私は JBoss AS 7.1 を使用しています。
ベストアンサー1
以下の手順は、JBoss AS 7.2 以上、JBoss EAP 6.1 以上、 そしてJBoss ワイルドフライ 8+サーバーのインストールと構成を完全に制御できることを前提としています。これにより、サーバー全体のデフォルトJSF バージョン:
- 個別のMojarraをダウンロードするAPIそして実装ファイル (つまり単一の
javax.faces.jar
ファイルではありません)。現在の最新の 2.1.x バージョンは 2.1.29 で、現在の最新の 2.2.x バージョンは 2.2.14 です。2.2.x にアップグレードすると仮定します。Maven リポジトリから個別にダウンロードできます。 - JBoss がシャットダウンされていることを確認してください。
- JSF API を更新
/modules/system/layers/base/javax/faces/api/main
:- 古い JAR ファイルを削除またはバックアップします (名前を変更しなくても、同じフォルダーに保存しないでください)。
jsf-api-2.2.14.jar
そこにファイルを置いてください。- ファイルを開いて
module.xml
編集し、<resource-root>
新しいファイル名を次のように指定します。<resource-root path="jsf-api-2.2.14.jar"/>
- JSF実装を更新します
/modules/system/layers/base/com/sun/jsf-impl/main
:- 古い JAR ファイルを削除またはバックアップします (名前を変更しなくても、同じフォルダーに保存しないでください)。
jsf-impl-2.2.14.jar
そこにファイルを置いてください。- ファイルを開いて
module.xml
編集し、<resource-root>
新しいファイル名を次のように指定します。<resource-root path="jsf-impl-2.2.14.jar"/>
- JBoss キャッシュ/作業データをクリーンアップして、以前のデプロイメントからの JAR の古いコピーが残っていないことを確認します。古いコピーは新しい JAR と衝突する可能性があります。
- すべてのコンテンツをゴミ箱に捨てます
/standalone/data
(もちろん、アップロードされたファイルを含むフォルダなどのカスタムデータフォルダは除きます) - すべてのコンテンツをゴミ箱へ
/standalone/deployments
- すべてのコンテンツをゴミ箱へ
/standalone/tmp
- すべてのコンテンツをゴミ箱に捨てます
- JBoss を起動します。これで、すべてのデプロイメントで新しい JSF バージョンが使用されるようになります。
同じ手順が適用されるJBoss AS 7.0/7.1そしてJBoss EAP 6.0/modules/*
の場合は、ではなくを参照するだけで済み/modules/system/layers/base/*
、そこにある古い.index
ファイルがあれば明示的に削除する必要があります (JBoss によって自動的に作成されます)。また、内にmodule.xml
API フォルダーがない場合は、手動で追加する必要があります。<module name="com.sun.jsf-impl"/>
<dependencies>
重要な注意点として、2.2.7 より古い Mojarra 2.2.x バージョンは、次の例外を除いて、デプロイメント中に AS/EAP で失敗します。org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.faces.flow.builder.FlowDefinition
その場合、基本的に 2 つのオプションがあります。Mojarra 2.1.x にダウングレードするか、少なくとも 2.2.7 以降にアップグレードします。
アップグレードをご希望の場合はモジャラ 2.3javax.faces.jar
は Maven で 2-JAR バリアントを提供しなくなったため、次の手順に従ってファイルに基づいて 2-JAR バリアントを手動で作成する必要があります。WildFly に JSF の jar バリアント (javax.faces.jar) をインストールする方法。