Apache MyFaces の設定とテスト実行

Apache MyFaces とは,JSF の機能を実装したプログラムの一種です.Apache MyFaces に特有の 拡張機能もあります. JSF は便利ですし、Apache MyFaces の拡張機能も魅力的です。 ここでは、Eclipse のプロジェクトに,Apache MyFaces をインポートすることを行う. Apache MyFaces が持つ JSF の機能や,拡張機能を実際に使ってみることの説明は,別のページで説明する.

方針は次の通りです.混乱しないように確認しておいてください.

  1. (補足)Eclipse で Spring 2.0 を設定している場合には,JSP (JSF のベースとなる部分)は Spring 2.0 内のものが使われます.
  2. 下記に示す「JSF サポートの追加」を行うことによって, Apache MyFaces がインポートされます.
  3. Apache MyFaces がインポートされたことを確認したいので, https://www.tutorialspoint.com/jsf/index.htm に記載のjsf-blank プログラム jsf-blank-myfaces-with-extensions-app.zip を Eclipse のプロジェクトにインポートして,動かしてみる.

    (注意)jsf-blank-myfaces-with-extensions-app.zip は、JSF の機能をまっ たく使っていない空のプログラムなのですが、JSF を動かすための前提になる ソフトウェアがインストールできているかのチェックを行いたいわけです.

    肝心の JSF の機能については, JavaServer Faces サンプルプログラム の Web ページや, JSF タグ のページで説明している. ( 重要JavaServer Faces サンプルプログラム の Web ページや, JSF タグ の Web ページでは, https://www.tutorialspoint.com/jsf/index.htm に記載の jsf-blank プログラムを書き換えて使う.

準備事項

必要となるソフト

Eclipse の設定

(必須の設定ではありませんが)、Eclispe のエディタ設定を次のように行っておくことを推奨します.

「Amateras ... エディタ」が現れないときは、HTMLEditor プラグイン のインストールを終えて、もう1度、ここの手順を試みる。

  1. Eclipse を起動
  2. 「ウインドウ (Window)」→「設定 (Preferences)」
  3. 「一般」→「エディター」→「ファイルの関連付け」
    • .html : 「Amateras HTML エディタ」をデフォルトのエディタにする。「Amateras JSP エディタ」→「デフォルト」
    • .htm : 「Amateras HTML エディタ」をデフォルトのエディタにする。「追加」→「Amateras HTML エディタ」→「OK」→「デフォルト」
    • .jsp : 「Amateras HTML エディタ」をデフォルトのエディタにする。「Amateras JSP エディタ」→「デフォルト」
    • .xml : 「Amateras XML エディタ」をデフォルトのエディタにする。「Amateras XML エディタ」→「デフォルト」
    • faces-config.xml : 「Amateras XML エディタ」をデフォルトのエディタにする。「Amateras XML エディタ」→「デフォルト」

決めておく事項

プロジェクト名は自由に決めていいです.テスト用のサンプルプログラムを動かすためのプロジェクトです. このWebページでは,下記のように記述します.

手順

動的 Web プロジェクトの新規作成

  1. 新規のプロジェクトの作成開始

    ファイル」→「新規 (New)」→「プロジェクト (Project)」
    または,パッケージ・エキスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」

    なお,パッケージ・エキスプローラの表示は, 「ウインドウ (Window)」→「ビューの表示 (Show View)」→「パッケージ・エキスプローラ (Package Explorer)」 という手順で行う.

  2. 動的Webプロジェクト (Dynamic Web Project)」の選択

    新規プロジェクトのウインドウが開くので, 「Web」→「動的Webプロジェクト (Dynamic Web Project)」を選ぶ.

  3. プロジェクト名の設定等を行い、「次へ」をクリック
    • 「プロジェクト名 (Project name)」(name)(1行目)では,プロジェクト名を付ける.プロジェクト名は,MYFACES (好きな名前でよい.スペースや全角文字は避ける)
    • 「プロジェクト・コンテンツ (Project contents)」(2行目)では,ファイルの保存場所を指定する.「Use default (デフォルトの使用)」にチェックを入れたままで良い.
    • 「ターゲット・ランタイム (Target Server)」 (3行目)は, 「Apache Tomcat v5.5」になっているはず.他のもの(例えば「なし」)になっていたら、 「Apache Tomcat v5.5」に変更しておく

      変更のとき,「なし」だけしか無くて,「Apache Tomcat v5.5」が候補として表示されない場合は, Eclipse で Tomcat (Java サーブレット) プログラム開発 のWebページに記載の「新規サーバの定義」の手順を行う

  4. 次の「プロジェクト・ファセット」は,デフォルトのままでよい

    「次へ」をクリック.

  5. 次の「Web モジュール」は,デフォルトのままでよい

    「終了」をクリック.

  6. 作成されたプロジェクトの確認

JSFサポートの追加

  1. 新規作成したプロジェクトMYFACESの「WebContent」を右クリック.
  2. 「新規」
  3. JSFサポートの追加

    「その他」→「Amateras」→「JSF」→「JSFサポートの追加」と操作し、「次へ」をクリック.

    「Amateras」が現れないときは、HTMLEditor プラグインと、FacesIDE プラグイン のインストールと設定を終えて、もう1度、ここの手順を試みる。

  4. JSFサポートの設定の確認

    Webアプリケーションのルートが,プロジェクト名/WebContent のようになっていることを確認.

    なっていなければ,Web アプリケーションのルートを、<プロジェクト名>/WebContent のように設定

    <プロジェクト名>/WebContent の設定を忘れたら、プロジェクトの作成からやり直し)

  5. 「終了」をクリック

    JAR ファイルの置き場所 WebContent/WEB-INF/lib にファイルが増えるとともに,web.xml, faces-config.xml などが増える.

jsf-blank のテスト実行

Apache MyFaces の動作確認のため, 公開されている jsf-blank プログラム (jsf-blank-myfaces-with-extensions-app.zip) を実行してみる.

  1. JSF チュートリアルの Web ページを開く

    https://www.tutorialspoint.com/jsf/index.htm をクリック.

  2. jsf-blank-myfaces-with-extensions-app.zip のダウンロード

    今開いている Web ページの「Section 1: Introducing JSF」のところにある jsf-blank-myfaces-with-extensions-app.zip をダウンロード。

  3. 解凍

    展開(解凍)してできたファイルのうち,WEB-INF/web.xml, WEB-INF/struts-config.xml, WEB-INF/lib, css/styles.css, index.jsp, welcome.jsp を使う (要するに全部を使う).

  4. Eclipse で,インポート開始

    インポートしたいプロジェクトであるMYFACESの下にある WebContent を右クリック.

  5. インポート」を選ぶ
  6. インポート・ソースの選択

    一般」→「ファイルシステム」と操作した後, 「次へ」をクリック.

  7. ソース・ディレクトリの指定
    • ソース・ディレクトリとして,先ほど解凍した jsf-blank-... を指定
    • ソース・ディレクトリの下に, インポートすべきファイルを選べる欄があるので, 「すべて選択」をクリック.

    以上の操作の後,「終了」をクリック.

  8. インポートの結果,ファイルが増える

    WebContent/css, WebContent/WEB-ING/lib, WebContent/index.jsp, , WebContent/welcome.jsp が増えていることがみてとれる.web.xml などは上書きされる.

実行

  1. 作成したプロジェクトMYFACESの「index.jsp」を右クリック.
  2. 「実行」→「サーバで実行」
  3. 新規サーバの定義」が現れたら,「ローカルホストの Tomcat v5.5 サーバ」になっていることを確認の後,「終了」をクリック.
  4. 実行結果の確認

    しばらく待つ.「welcome to JSF」という画面が現れたら、うまく動作している。

    実行で、エラーが出る場合、tomcat5w.exe を実行してみる。 サーバが stop できる状態(STOP ボタンが有効になっている状態)になって いたら、 エラーが当然なので、 STOP ボタンを押して、もう1度、上記の操作を行う。

(オプション) 最新版の Apache MyFaces tomahawk に入れ替え

さきほど作成したプロジェクト MYFACES の lib を展開すると、 tomahawk のバージョンが分かります。 1.1.3 のように古いバージョンになっているでしょう。 バージョンアップしたいときの手順は次の通りです。

  1. MyFaces バイナリ・リリースのうち tomahawk のダウンロード
    1. Apache MyFaces Project の ダウンロード用 Web ページ https://myfaces.apache.org/#/
    2. MyFaces Tomahawk のバージョン 1.1.6 をダウンロード

      zip 形式ファイル tomahawk-1.1.60-bin.zip を選ぶ

      tomahawk 1.1.6 は、Core 1.1.5 と組み合わせて使うことになっている (Core 1.2.0 はダメ)ので、Core 1.2.0 をダウンロードしない。

    3. 上記のファイルを展開(解凍)

      どこに解凍しても良いが、後で分かりやすいように C:\Program Files\Java の下に解凍しておく。

  2. プロジェクト内にインポート

    先ほど作ったプロジェクト MYFACES に,Apache MyFaces tomahawk をインポートします.

    1. tomahawk-1.1.6 を WebContent/WEB-INF/lib へインポート

      WebContent/Web-INF/lib を右クリック.「インポート」→「一般」→「ファイルシステム」. ディレクトリとして,先ほど解凍した tomahawk-1.1.6/lib を指定し,その後,「lib」をチェックしてインポート.

    2. tomahawk-1.1.3 (Eclipse プロジェクトの WebContent/WEB-INF/lib にある) を削除

Apache MyFaces 使用上の注意点

タグについて

JSF のタグを使うときは,JSP ファイルに、次の2行を追加することになっています.

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

Aapche MyFaces 固有の拡張タグを使うときは、JSP ファイルに、さらに次の2行を追加することになっています.

<%@ taglib uri="https://myfaces.apache.org/tomahawk" prefix="t"%>
<%@ taglib uri="https://myfaces.apache.org/wap" prefix="wap" %>

上記に紹介した jsf-blank サンプルプログラムは,ごく簡単なもので, JSF タグが入っていませんし, 上に書いた2行も入っていません. このことを注意しておいてください.

詳しくは、https://svn.apache.org/repos/asf/myfaces/site/publish/tomahawk/index.htmlextensionsFilter.html を参照のこと。