2009年10月10日土曜日

Eclipse と Geronimo で JSF

やっと本題にたどり着けた気がする。

では、JSF のチュートリアルをやってみる。
もちろん他人のフンドシを利用する

Eclipse.orgwebtools のページにある JSF のチュートリアルをやってみることにする。
違いがある部分を説明する



【Setup】
JDK 6 (1.6.0_16)
Eclipse 3.5.1
Eclipse Web Tools Platform(WTP) 3.1.1
Geronimo Eclipse Plugin(GEP) 2.2.0 (Nightly Build)
Apache Geronimo 2.1.4 with Tomcat 6
JSF のライブラリは Geronimo に入っている MyFaces を使用

現時点では GEP をそのままインストールできないので、以前の投稿(Eclipse で Geronimo (インストール編))を参考にすること


【Make the Web Page Editor the default editor for JSP pages】
そのまま実施


【Register JSF libraries】
該当する設定は、プロジェクト設定に移った模様。
したがって、この内容はスキップ


【Create a JavaServer Faces Project】
ここは、全部差し替え
新規プロジェクト作成で、Dynamic Web Project を選択し、「New Dynamic Web Project」ダイアログを開く
  1. 「Project name」
    ”JSFTutorial”と入力
  2. 「Target runtime」

    • 「New...」ボタンを押し、「New Server Runtime Environment」ダイアログを開く
    • ”Apache Geronimo v2.2”を選択し、「Next」ボタンを押す
    • 「JRE」に”jre6”
    • 「Application Server Installation Directory」に Geronimo をインストールしたディレクトリ(ここでは、”C:\appli\geronimo-tomcat6-javaee5-2.1.4”)を指定
    • 「Finish」ボタンを押して、ダイアログを閉じる

  3. 「Dynamic web module version」
    ”2.5”を設定
  4. 「Configuration」

    • 「Modify...」ボタンを押し、「Project Facets」ダイアログを開く
    • 以下の4つのチェックボックスをチェック
      「Dynamic Web Module」 Version 「2.5」 (デフォルトでチェックされているはず)
      「Geronimo Deployment」 Version 「1.2」 (デフォルトでチェックされているはず)
      「Java」 Version 「6.0」 (デフォルトでチェックされているはず)
      「JavaServer Faces」 Version 「1.2」 (新たにチェックする)
      ここで JavaServer Faces を追加することによって、後で利用する”faces-config.xml”が作成される
    • 「OK」ボタンを押して、ダイアログを閉じる

  5. 「Finish」ボタンを押す
これで、「JSFTutoril」プロジェクトが作成される。もしここで、エラーダイアログが開き、詳細に”NullPointerException”が表示されている場合には、Eclipse で Geronimo (Eclipse 3.5.1 でリスタート その2)が参考なるやもしれず・・・

作成されたプロジェクトには、既に JSF のライブラリがパスに含まれている。
プロジェクト設定の「Java Build Path」にある「Libraries」を確認すると、
”Apache Geronimo v2.2 [Apache Geronimo v2.2]”の中に
JSF のライブラリ(myfaces-api-1.2.6.jar と myfaces-impl-1.2.6.jar)が、
含まれていることを確認できる。
前述の JSF のライブラリの設定をスキップしたのはそのため。

それとは別に JSF のライブラリを個別に設定できる仕組みがあり、
そちらの設定を行っておくことにする。
  1. プロジェクトの Properties を開く
  2. 「Project Facets」>「Java Server Faces」を選択
  3. 「Library」に”Disable Library Configuration”を選択
    警告が出るが、必要なライブラリは既にクラスパスに含まれているので問題ない
  4. 「OK」ボタンを押す

【Create a JSF JSP Page】
分かりづらい部分があるので、よく確認しながら進めること
設定を忘れると、動かないものもあるので注意

messages.properties を作成した後、login.jsp に loadBundle タグを追加するところで、タグの追加位置が間違っているという、警告が出た。本来は view タグが親になるそうだ。したがって、<f:view>タグの下に追加した。
って思ったら「Complete the login page as shown below.」の login.jsp のソースでは view タグの下になっていた。

welcome.jsp を作成するところで、loadBundle タグを view タグの下につくった
loadBundle タグを Properties ビューで設定するときに、 「basename」の「Browse...」ボタンを押すと、かなり待たされる。


【Testing the JSF JSP Page】
2) の部分を以下の手順に差し替える
1 を実行すると表示される「Run On Server」 ダイアログで、「Manually define a new server」を選択
「Server's host name」には、”localhost”を設定
「Select the server type」には、”Apache Geronimo v2.2 Server”を選択
「Server name」には、”Apache Geronimo v2.2 Server at localhost”を設定
「Server runtime environment」には、”Apache Geronimo v2.2」を選択
「Next」ボタンを押す

「Hostname」、「Administrator id」および「Administrator password」はデフォルトのまま
「Specify the configured ports for this server」では、以下の変更を行った。
ただし、以下の設定の初期値は、Geronimo のデフォルトポート設定になっているため、設定を変更していない場合は、変更の必要はない。
「Web Connector」には、”9080” (このポートは、HTTP 接続用)
「RMI Naming」には、”2099” (このポートは、停止制御用)
「Next」ボタンを押す

「Configured」リストに”JSFTutorial”が含まれていることを確認
「Finish」ボタンを押す