Apache MyFaces の設定とテスト実行
Apache MyFaces とは,JSF の機能を実装したプログラムの一種です.Apache MyFaces に特有の 拡張機能もあります. JSF は便利ですし、Apache MyFaces の拡張機能も魅力的です。 ここでは、Eclipse のプロジェクトに,Apache MyFaces をインポートすることを行う. Apache MyFaces が持つ JSF の機能や,拡張機能を実際に使ってみることの説明は,別のページで説明する.
方針は次の通りです.混乱しないように確認しておいてください.
- (補足)Eclipse で Spring 2.0 を設定している場合には,JSP (JSF のベースとなる部分)は Spring 2.0 内のものが使われます.
- 下記に示す「JSF サポートの追加」を行うことによって, Apache MyFaces がインポートされます.
- 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 インストールが終わっていること.
- Eclipse の GEF プラグイン、 HTMLEditor プラグイン、 FacesIDE プラグイン、 のインストールと設定が終わっていること.
- Tomcat インストールも終わっていること.
- 動的 Web プロジェク トとしての Eclipse 上での Tomcat プログラム開発の Web ページに記載 の「(Eclipse での)新規サーバの定義」が終わっていること。
Eclipse の設定
(必須の設定ではありませんが)、Eclispe のエディタ設定を次のように行っておくことを推奨します.
「Amateras ... エディタ」が現れないときは、HTMLEditor プラグイン のインストールを終えて、もう1度、ここの手順を試みる。
- Eclipse を起動
- 「ウインドウ (Window)」→「設定 (Preferences)」
- 「一般」→「エディター」→「ファイルの関連付け」
- .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ページでは,下記のように記述します.
- プロジェクト名: MYFACES
- (Java クラスの) パッケージ名: hoge.hoge.com
手順
動的 Web プロジェクトの新規作成
- 新規のプロジェクトの作成開始
「ファイル」→「新規 (New)」→「プロジェクト (Project)」
または,パッケージ・エキスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」なお,パッケージ・エキスプローラの表示は, 「ウインドウ (Window)」→「ビューの表示 (Show View)」→「パッケージ・エキスプローラ (Package Explorer)」 という手順で行う.
- 「動的Webプロジェクト (Dynamic Web Project)」の選択
新規プロジェクトのウインドウが開くので, 「Web」→「動的Webプロジェクト (Dynamic Web Project)」を選ぶ.
- プロジェクト名の設定等を行い、「次へ」をクリック
- 「プロジェクト名 (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ページに記載の「新規サーバの定義」の手順を行う
- 次の「プロジェクト・ファセット」は,デフォルトのままでよい
「次へ」をクリック.
- 次の「Web モジュール」は,デフォルトのままでよい
「終了」をクリック.
- 作成されたプロジェクトの確認
JSFサポートの追加
- 新規作成したプロジェクトMYFACESの「WebContent」を右クリック.
- 「新規」
- JSFサポートの追加
「その他」→「Amateras」→「JSF」→「JSFサポートの追加」と操作し、「次へ」をクリック.
「Amateras」が現れないときは、HTMLEditor プラグインと、FacesIDE プラグイン のインストールと設定を終えて、もう1度、ここの手順を試みる。
- JSFサポートの設定の確認
Webアプリケーションのルートが,プロジェクト名/WebContent のようになっていることを確認.
なっていなければ,Web アプリケーションのルートを、<プロジェクト名>/WebContent のように設定
(<プロジェクト名>/WebContent の設定を忘れたら、プロジェクトの作成からやり直し)
- 「終了」をクリック
JAR ファイルの置き場所 WebContent/WEB-INF/lib にファイルが増えるとともに,web.xml, faces-config.xml などが増える.
jsf-blank のテスト実行
Apache MyFaces の動作確認のため, 公開されている jsf-blank プログラム (jsf-blank-myfaces-with-extensions-app.zip) を実行してみる.
- JSF チュートリアルの Web ページを開く
https://www.tutorialspoint.com/jsf/index.htm をクリック.
- jsf-blank-myfaces-with-extensions-app.zip のダウンロード
今開いている Web ページの「Section 1: Introducing JSF」のところにある jsf-blank-myfaces-with-extensions-app.zip をダウンロード。
- 解凍
展開(解凍)してできたファイルのうち,WEB-INF/web.xml, WEB-INF/struts-config.xml, WEB-INF/lib, css/styles.css, index.jsp, welcome.jsp を使う (要するに全部を使う).
- Eclipse で,インポート開始
インポートしたいプロジェクトであるMYFACESの下にある WebContent を右クリック.
- 「インポート」を選ぶ
- インポート・ソースの選択
「一般」→「ファイルシステム」と操作した後, 「次へ」をクリック.
- ソース・ディレクトリの指定
- ソース・ディレクトリとして,先ほど解凍した jsf-blank-... を指定
- ソース・ディレクトリの下に, インポートすべきファイルを選べる欄があるので, 「すべて選択」をクリック.
以上の操作の後,「終了」をクリック.
- インポートの結果,ファイルが増える
WebContent/css, WebContent/WEB-ING/lib, WebContent/index.jsp, , WebContent/welcome.jsp が増えていることがみてとれる.web.xml などは上書きされる.
実行
- 作成したプロジェクトMYFACESの「index.jsp」を右クリック.
- 「実行」→「サーバで実行」
- 「新規サーバの定義」が現れたら,「ローカルホストの Tomcat v5.5 サーバ」になっていることを確認の後,「終了」をクリック.
- 実行結果の確認
しばらく待つ.「welcome to JSF」という画面が現れたら、うまく動作している。
実行で、エラーが出る場合、tomcat5w.exe を実行してみる。 サーバが stop できる状態(STOP ボタンが有効になっている状態)になって いたら、 エラーが当然なので、 STOP ボタンを押して、もう1度、上記の操作を行う。
(オプション) 最新版の Apache MyFaces tomahawk に入れ替え
さきほど作成したプロジェクト MYFACES の lib を展開すると、 tomahawk のバージョンが分かります。 1.1.3 のように古いバージョンになっているでしょう。 バージョンアップしたいときの手順は次の通りです。
- MyFaces バイナリ・リリースのうち tomahawk のダウンロード
- Apache MyFaces Project の ダウンロード用 Web ページ https://myfaces.apache.org/#/
- 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 をダウンロードしない。
- 上記のファイルを展開(解凍)
どこに解凍しても良いが、後で分かりやすいように C:\Program Files\Java の下に解凍しておく。
- プロジェクト内にインポート
先ほど作ったプロジェクト MYFACES に,Apache MyFaces tomahawk をインポートします.
- tomahawk-1.1.6 を WebContent/WEB-INF/lib へインポート
WebContent/Web-INF/lib を右クリック.「インポート」→「一般」→「ファイルシステム」. ディレクトリとして,先ほど解凍した tomahawk-1.1.6/lib を指定し,その後,「lib」をチェックしてインポート.
- tomahawk-1.1.3 (Eclipse プロジェクトの WebContent/WEB-INF/lib にある) を削除
- tomahawk-1.1.6 を 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 を参照のこと。