検索

第21章 JavaServer Faces (JSF) の設定

download PDF

21.1. JavaServer Faces の複数の JSF 実装

The JavaServer Faces (JSF) サブシステムでは、複数の JSF 実装を同じ JBoss EAP サーバーインスタンスにインストールできます。特に、JSF 仕様 2.1 以上を実装するすべてのバージョンの Sun Mojarra または Apache MyFaces をインストールできます。

21.1.1. JSF 実装のインストール

以下の手順は、新しい JSF 実装を手作業でインストールし、デフォルトの実装にする方法になります。

JSF 実装 JAR ファイルの追加
  1. 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_VERSIONmojarra-2.2.11 に置き換えます。

  2. JSF 実装 JAR ファイルを JSF_IMPL_NAME-JSF_VERSION/ サブディレクトリーにコピーします。
  3. JSF_IMPL_NAME-JSF_VERSION/ サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似た module.xml ファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
JSF API JAR ファイルの追加
  1. JFS 実装の EAP_HOME/modules/ ディレクトリーに適切なディレクトリー構造を作成します。

    $ cd EAP_HOME/modules/
    $ mkdir -p javax/faces/api/JSF_IMPL_NAME-JSF_VERSION
  2. JSF API JAR ファイルを JSF_IMPL_NAME-JSF_VERSION/ サブディレクトリーにコピーします。
  3. JSF_IMPL_NAME-JSF_VERSION/ サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似た module.xml ファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
JSF インジェクション JAR ファイルの追加
  1. JFS 実装の EAP_HOME/modules/ ディレクトリーに適切なディレクトリー構造を作成します。

    $ cd EAP_HOME/modules/
    $ mkdir -p org/jboss/as/jsf-injection/JSF_IMPL_NAME-JSF_VERSION
  2. wildfly-jsf-injection および weld-core-jsf JAR ファイルを EAP_HOME/modules/system/layers/base/org/jboss/as/jsf-injection/main/ から JSF_IMPL_NAME-JSF_VERSION/ サブディレクトリーにコピーします。
  3. JSF_IMPL_NAME-JSF_VERSION/ サブディレクトリーで、この Mojarra テンプレート またはこの MyFaces テンプレート と似た module.xml ファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
MyFaces の commons-digester JAR ファイルの追加
  1. commons-digester JAR の EAP_HOME/modules/ ディレクトリーに適切なディレクトリー構造を作成します。

    $ cd EAP_HOME/modules/
    $ mkdir -p org/apache/commons/digester/main
  2. commons-digester JAR ファイルをダウンロードし、main/ サブディレクトリーにコピーします。
  3. main/ サブディレクトリーで、この テンプレート と似た module.xml ファイルを作成します。テンプレートを使用する場合は、置き換え可能な変数に適切な値を適用してください。
デフォルト JSF 実装の設定
  1. 以下の管理 CLI コマンドを実行して、新しい JSF 実装をデフォルト実装として設定します。

    /subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPL_NAME-JSF_VERSION)
  2. JBoss EAP サーバーを再起動し、変更を反映します。

21.1.2. マルチ JSF 実装のサポート

JBoss EAP 7.2 には、単一の JSF 実装で、Mojarra をベースとした JSF 2.3 実装が含まれています。

マルチ JSF は、同じ JBoss EAP サーバーで複数の JSF 実装およびバージョンのインストールを可能にします。この目的は、JSF 実装、MyFaces、および Mojarra すべてと、これらの実装の JSF 2.1 以上のバージョンをすべて使用できるようにすることです。マルチJSF は、コンテナーと完全統合された実装を提供するため、より効率的なアノテーション処理、ライフサイクル処理、およびその他の統合の利点を実現できます。

21.1.2.1. マルチ JSF 実装の仕組み

各 JSF バージョンごとに新しいスロットが com.sun.jsf-impljavax.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>

21.1.2.2. デフォルトの JSF 実装の変更

マルチ JSF 機能では、 jsf サブシステムに default-jsf-impl-slot 属性が含まれています。この属性を使用すると、以下の手順のようにデフォルトの JSF 実装を変更することができます。

  1. write-attribute コマンドを使用して、default-jsf-impl-slot 属性の値をアクティブな JSF 実装の 1 つに設定します。

    /subsystem=jsf:write-attribute(name=default-jsf-impl-slot,value=JSF_IMPLEMENTATION)
  2. 変更を反映するために、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"
    ]
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.