第20章 JavaServer Faces (JSF) の設定
20.1. JavaServer Faces の複数の JSF 実装
The JavaServer Faces (JSF) サブシステムでは、複数の JSF 実装を同じ JBoss EAP サーバーインスタンスにインストールできます。特に、JSF 仕様 2.1 以上を実装するすべてのバージョンの Sun Mojarra または Apache MyFaces をインストールできます。
20.1.1. JSF 実装のインストール
以下の手順は、新しい JSF 実装を手作業でインストールし、デフォルトの実装にする方法になります。
JSF 実装 JAR ファイルの追加
JFS 実装の
EAP_HOME/modules/ディレクトリーに適切なディレクトリー構造を作成します。$ cd EAP_HOME/modules/ $ mkdir -p com/sun/jsf-impl/JSF_IMPL_NAME-JSF_VERSION
注記たとえば、Mojarra 2.2.11 の場合は
JSF_IMPL_NAME-JSF_VERSIONをmojarra-2.2.11に置き換えます。-
JSF 実装 JAR ファイルを
JSF_IMPL_NAME-JSF_VERSION/サブディレクトリーにコピーします。 -
JSF_IMPL_NAME-JSF_VERSION/サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似たmodule.xmlファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
JSF API JAR ファイルの追加
JFS 実装の
EAP_HOME/modules/ディレクトリーに適切なディレクトリー構造を作成します。$ cd EAP_HOME/modules/ $ mkdir -p javax/faces/api/JSF_IMPL_NAME-JSF_VERSION
-
JSF API JAR ファイルを
JSF_IMPL_NAME-JSF_VERSION/サブディレクトリーにコピーします。 -
JSF_IMPL_NAME-JSF_VERSION/サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似たmodule.xmlファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
JSF インジェクション JAR ファイルの追加
JFS 実装の
EAP_HOME/modules/ディレクトリーに適切なディレクトリー構造を作成します。$ cd EAP_HOME/modules/ $ mkdir -p org/jboss/as/jsf-injection/JSF_IMPL_NAME-JSF_VERSION
-
wildfly-jsf-injectionおよびweld-core-jsfJAR ファイルをEAP_HOME/modules/system/layers/base/org/jboss/as/jsf-injection/main/からJSF_IMPL_NAME-JSF_VERSION/サブディレクトリーにコピーします。 -
JSF_IMPL_NAME-JSF_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-
commons-digesterJAR ファイルをダウンロードし、main/サブディレクトリーにコピーします。 -
main/サブディレクトリーで、この テンプレート と似たmodule.xmlファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
デフォルト JSF 実装の設定
以下の管理 CLI コマンドを実行して、新しい JSF 実装をデフォルト実装として設定します。
/subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPL_NAME-JSF_VERSION)
- JBoss EAP サーバーを再起動し、変更を反映します。
20.1.2. マルチ JSF 実装のサポート
JBoss EAP には、単一の JSF 実装である Mojarra をベースとした JSF 2.2 実装が同梱されます。
マルチ JSF は、同じ JBoss EAP サーバーで複数の JSF 実装およびバージョンのインストールを可能にします。この目的は、JSF 実装、MyFaces、および Mojarra すべてと、これらの実装の JSF 2.1 以上のバージョンをすべて使用できるようにすることです。マルチJSF は、コンテナーと完全統合された実装を提供するため、より効率的なアノテーション処理、ライフサイクル処理、およびその他の統合の利点を実現できます。
20.1.2.1. マルチ JSF 実装の仕組み
各 JSF バージョンごとに新しいスロットが com.sun.jsf-impl、 javax.faces.api、および org.jboss.as.jsf-injection 下のモジュールパスに作成されることで、マルチ JSF は機能します。jsf サブシステムが開始されると、モジュールパスをスキャンしてインストールされた JSF 実装をすべて見つけます。jsf サブシステムが指定されたコンテキストパラメーターが含まれる web アプリケーションをデプロイすると、スロットが作成されたモジュールをデプロイメントに追加します。
たとえば、MyFaces 2.2.12 がサーバー上にインストールされていることを仮定して、JSF アプリケーションは 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>20.1.2.2. デフォルトの JSF 実装の変更
マルチ JSF 機能では、 jsf サブシステムに default-jsf-impl-slot 属性が含まれています。この属性を使用すると、以下の手順のようにデフォルトの JSF 実装を変更することができます。
write-attributeコマンドを使用して、default-jsf-impl-slot属性の値をアクティブな JSF 実装の 1 つに設定します。/subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPLEMENTATION)変更を反映するために、JBoss EAP サーバーを再起動します。
reload
インストールされている JSF 実装を確認するには、list-active-jsf-impls 操作を実行します。
/subsystem=jsf:list-active-jsf-impls
{
"outcome" => "success",
"result" => [
"myfaces-2.1.12",
"mojarra-2.2.0-m05",
"main"
]
}
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.