第21章 Jakarta Server Faces 設定
21.1. Jakarta Server Faces の複数の Jakarta Server Faces 実装 リンクのコピーリンクがクリップボードにコピーされました!
jsf サブシステムでは、複数の Jakarta Server Faces 実装を同じ JBoss EAP サーバーインスタンスにインストールできます。Jakarta Server Faces 仕様 2.3 以降を実装する Sun Mojarra または Apache MyFaces のバージョンをインストールできます。
21.1.1. Jakarta Server Faces 実装のインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の手順は、新しい Jakarta Server Faces 実装を手作業でインストールし、デフォルトの実装にする方法になります。
Jakarta Server Faces 実装 JAR ファイルの追加
Jakarta Server Faces 実装の
EAP_HOME/modules/ディレクトリーに適切なディレクトリー構造を作成します。cd EAP_HOME/modules/ mkdir -p com/sun/jsf-impl/IMPL_NAME-VERSION
$ cd EAP_HOME/modules/ $ mkdir -p com/sun/jsf-impl/IMPL_NAME-VERSIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記たとえば、
IMPL_NAME-VERSIONを、Jakarta Server Faces 仕様 2.3 以降をサポートする Mojarra のバージョンに置き換えます。-
Jakarta Server Faces 実装 JAR ファイルを
IMPL_NAME-VERSION/サブディレクトリーにコピーします。 -
IMPL_NAME-VERSION/サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似たmodule.xmlファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
Jakarta Server Faces API JAR ファイルの追加
Jakarta Server Faces 実装の
EAP_HOME/modules/ディレクトリーに適切なディレクトリー構造を作成します。cd EAP_HOME/modules/ mkdir -p javax/faces/api/IMPL_NAME-VERSION
$ cd EAP_HOME/modules/ $ mkdir -p javax/faces/api/IMPL_NAME-VERSIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Jakarta Server Faces API JAR ファイルを
IMPL_NAME-VERSION/サブディレクトリーにコピーします。 -
IMPL_NAME-VERSION/サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似たmodule.xmlファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
Jakarta Server Faces インジェクション JAR ファイルの追加
Jakarta Server Faces 実装の
EAP_HOME/modules/ディレクトリーに適切なディレクトリー構造を作成します。cd EAP_HOME/modules/ mkdir -p org/jboss/as/jsf-injection/IMPL_NAME-VERSION
$ cd EAP_HOME/modules/ $ mkdir -p org/jboss/as/jsf-injection/IMPL_NAME-VERSIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow Patching and Upgrading ガイドの指示に従い、お使いの JBoss EAP インスタンスの最新の累積パッチをダウンロードします。次に、以下のいずれかの手順を実行します。
-
パッチ更新をサーバーに適用していない場合は、
EAP_HOME/modules/system/layers/base/org/jboss/as/jsf-injection/main/からIMPL_NAME-VERSION/サブディレクトリーにwildfly-jsf-injectionとweld-core-jsfJAR ファイルをコピーします。 -
パッチ更新をサーバーに適用した場合は、最新のパッチ更新ディレクトリーから
IMPL_NAME-VERSION/サブディレクトリーにwildfly-jsf-injectionとweld-core-jsfJAR ファイルをコピーします。たとえば、EAP_HOME/modules/system/layers/base/.overlays/layer-base-jboss-eap-7.3.z.CP/org/jboss/as/jsf-injectionなどです。z は最新のバージョン番号です。
-
パッチ更新をサーバーに適用していない場合は、
-
IMPL_NAME-VERSION/サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似たmodule.xmlファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
MyFaces の commons-digester JAR ファイルの追加
commons-digesterJAR のEAP_HOME/modules/ディレクトリーに適切なディレクトリー構造を作成します。cd EAP_HOME/modules/ mkdir -p org/apache/commons/digester/main
$ cd EAP_HOME/modules/ $ mkdir -p org/apache/commons/digester/mainCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
commons-digesterJAR ファイルをダウンロードし、main/サブディレクトリーにコピーします。 -
main/サブディレクトリーで、このテンプレートと似た module.xml ファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
デフォルトの Jakarta Server Faces 実装の設定
以下の管理 CLI コマンドを実行して、新しい Jakarta Server Faces 実装をデフォルト実装として設定します。
/subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=IMPL_NAME-VERSION)
/subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=IMPL_NAME-VERSION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - JBoss EAP サーバーを再起動し、変更を反映します。
21.1.2. マルチ Jakarta Server Faces 実装サポート リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP 7.3 には、単一の Jakarta Server Faces 実装である Mojarra をベースとした Jakarta Server Faces 2.3 実装が含まれています。
マルチ Jakarta Server Faces を使用すると、複数の Jakarta Server Faces 実装およびバージョンを同じ JBoss EAP サーバーにインストールできます。この目的は、Jakarta Server Faces 実装、MyFaces または Mojarra のいずれか、ならびに Java EE JSF 2.1 以上、Jakarta Server Faces 2.3 以上のバージョンをすべて使用できるようにすることです。マルチ Jakarta Server Faces は、コンテナーと完全統合された実装を提供するため、より効率的なアノテーション処理、ライフサイクル処理、およびその他の統合の利点を実現できます。
21.1.2.1. マルチ Jakarta Server Faces 実装の仕組み リンクのコピーリンクがクリップボードにコピーされました!
各 Jakarta Server Faces バージョンごとに新しいスロットが com.sun.jsf-impl、javax.faces.api、および org.jboss.as.jsf-injection 下のモジュールパスに作成されることで、マルチ Jakarta Server Faces は機能します。jsf サブシステムが開始されると、モジュールパスをスキャンしてインストールされた Jakarta Server Faces 実装をすべて見つけます。jsf サブシステムが指定されたコンテキストパラメーターが含まれる web アプリケーションをデプロイすると、スロットが作成されたモジュールをデプロイメントに追加します。
たとえば、MyFaces 2.2.12 がサーバー上にインストールされていることを仮定して、Jakarta Server Faces アプリケーションは MyFaces 2.2.12 を使用すべきであることを示すには、以下のコンテキストパラメーターを追加する必要があります。
<context-param> <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name> <param-value>myfaces-2.2.12</param-value> </context-param>
<context-param>
<param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
<param-value>myfaces-2.2.12</param-value>
</context-param>
21.1.2.2. デフォルトの Jakarta Server Faces 実装の変更 リンクのコピーリンクがクリップボードにコピーされました!
マルチ Jakarta Server Faces 機能では、jsf サブシステムに default-jsf-impl-slot 属性が含まれています。この属性を使用すると、以下の手順のようにデフォルトの Jakarta Server Faces 実装を変更することができます。
write-attributeコマンドを使用して、default-jsf-impl-slot属性の値をアクティブな Jakarta Server Faces 実装の 1 つに設定します。/subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPLEMENTATION)
/subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPLEMENTATION)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を反映するために、JBoss EAP サーバーを再起動します。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
インストールされている Jakarta Server Faces 実装を確認するには、list-active-jsf-impls 操作を実行します。