JBoss 4.0 + JBoss IDE 2.0
今のプロジェクトでJBossを使った既存のシステムに機能追加をしてる。
結構戸惑った点があった。
1.JBoss、Eclipseってバージョンによって使える機能やフレームワークが違ったりして、Webの情報をそのまま真似するってのは中々難しい。例えば、EJB3とそれ以前の開発なんて随分違う。EJB3に慣れちゃうとXDocletですら面倒で使ってらんない。
2.Tomcatは今までボチボチ触ってたけどJBossはそれ程でもなかったし、同じ設定ファイルでも微妙に違う事があった。
3.JBossの設定は色々情報が見つかるけど、Eclipse上での開発環境の構築は情報が少なくて正直かなり手間取った。
と言うことで、いくつか気になった点をメモ書き。
とりあえず環境から
・JBoss 4.0.3 SP1
・Eclipse 3.2 (Web Tools Platform 2.0.1)
・JBoss IDE 2.0.0 Beta2
・JDK 5
○環境構築
WTP all in oneパッケージにJBoss IDE 2.0.0プラグイン(All)を入れる。
インストールはこれで完了。
・サーバーランタイムの設定
ツールバーからWindow->Preferencesを選択して設定画面を出す。
左のツリーからServer->Installed Runtimesを選択。
Addボタンをクリック。
「JBoss」と「JBoss Inc」って2つのフォルダがあるけど後者を選択。
使ってるバージョンを選択してNextをクリック。
名前、JBossをインストールしたディレクトリ、JREの場所を入力しておしまい。
・プロジェクトの作成
Eclipseで新規プロジェクト作成。「Web->Dynamic Web Project」を選択。
Target Runtimeで先ほど作成したJBossを選択。
次のページでJavaのバージョンを自分が使ってるのに変更。
後はデフォルトのまま最後までいく。
プロジェクトの作成後、Package Explorerを右クリックBuild Path->Configure Build Pathを選択。
Librariesタブを選択。
Add Libraryボタンをクリック。
J2EE 1.4 Libraries (JBoss-IDE)を選択して次に進む。
Finish!
○設定ファイルの場所
今回いじるファイルは以下の通り
web.xml
jboss-web.xml
login-config.xml
xxxx-ds.xml (名前は任意)
web.xmlとjboss-web.xmlはEclipseでいうとWebContent/WEB-INFの直下に置く。
login-config.xmlとxxxx-ds.xmlはEclipseからデプロイする方法が分からなかったのでとりあえず手動で以下の場所に置く。
$JBOSS_HOME/server/default/deploy/xxxx-ds.xml
$JBOSS_HOME/server/default/conf/login-config.xml
これで一通りは完了。EJBとかその辺の設定はこれから。J2EE 1.4だとXDocletを使った方がいいのかな。J2EE 5(というかEJB3)だとアノテーションでokみたいだから楽なんだけど。
○JSTLの使用
今からプロジェクトを始めるならEJB 3 + JSF 1.2でやると思うけど、既存のプロジェクトの改修だし、フレームワークとかを新たに使い始めるほどの規模でないので、サーブレット+JSPでやることになった。それに加えてJSTL+以前のプロジェクトで使ったカスタムタグライブラリなどでプログラム量を減らす予定。
Tomcatと同じでweb.xmlをちょっと変更してTLDファイルをWEB-INF以下に置けばいいんだろうと思ったけど、WEB-INFの書き方が若干変わったらしい。詳しくはこのページの真ん中辺りを参照。
後は以下のライブラリファイルをWEB-INF/lib以下に置く。
jstl.jar
standard.jar
JSTLはどのJSPページでも使うので、@ITの記事を参考にJSPを自動的に読み込ませるようにweb.xmlを修正。
web.xmlはこんな感じ。
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
<include-prelude>/jsp/header.jsp</include-prelude>
</jsp-property-group>
<taglib>
<taglib-uri>/c</taglib-uri>
<taglib-location>c.tld</taglib-location>
</taglib>
</jsp-config>