web-dev-qa-db-ja.com

JBoss AS / EAP / WildFlyでJSF / Mojarraをアップグレード

JBossサーバーでMojarraをアップグレードし、起動ログに示されているJBoss独自のjboss-jsf-api_2.1_spec-2.0.1.Final.jarではなく、指定されたMojarra 2.x JARを使用するようにするにはどうすればよいですか?

これに関連する場合は、現在JBoss AS 7.1を使用しています。

33
user2172625

以下の手順は、JBoss AS 7.2 +JBoss EAP 6.1 +に適用されます、およびJBoss WildFly 8 +であり、サーバーのインストールと構成を完全に制御していることを前提としています。これにより、サーバー全体defaultJSFバージョンがアップグレードされます。

  • 個々のMojarra [〜#〜] api [〜#〜] および impl ファイルをダウンロードします(したがって、単一のjavax.faces.jarファイルではありません)。現在の最新の2.1.xバージョンは2.1.29で、現在の最新の2.2.xバージョンは2.2.14です。 2.2.xにアップグレードするとします。 Mavenリポジトリから個別にダウンロードできます。
  • JBossがシャットダウンされていることを確認してください。
  • /modules/system/layers/base/javax/faces/api/main:のJSF APIを更新します
    • 古いJARファイルを削除またはバックアップします(名前を変更しない場合でも、同じフォルダーに保存しないでください)。
    • そこにjsf-api-2.2.14.jarファイルを置きます。
    • module.xmlファイルを開き、<resource-root>を編集して、<resource-root path="jsf-api-2.2.14.jar"/>のように新しいファイル名を指定します。
  • /modules/system/layers/base/com/Sun/jsf-impl/main:のJSF実装を更新します
    • 古い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が自動作成します)。また、APIフォルダーのmodule.xml<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つのオプションがあります。Mojarra2.1.xにダウングレードするか、少なくとも2.2.7以降にアップグレードします。

Mavenで2-JARバリアントを提供しないMojarra 2.3にアップグレードする場合は、手動で行う必要があります。この手順に従って、javax.faces.jarファイルに基づいて2-JARバリアントを作成します。 WildFlyにJSF(javax.faces.jar)の1つのjarバリアントをインストールする方法

64
BalusC