IntelliJではじめるJava EE 6
JavaEE6はおろかJavaEE5すらロクにさわってない自身を振り返って,ずいぶん遠くに来たもんだなぁと感慨にふける。IntelliJもJavaEE6対応するのは次のIDEA9からのようなので,Maia EAP(#10781)を使って試してみましたよ。
GlassFishのダウンロード
下記URLからGlassFish v3 previewをダウンロード。よく分かんないんでインストーラ版を使った。
→ https://glassfish.dev.java.net/downloads/v3-preview.html
インスコ先を便宜上 $AS_INSTALL
とする(自分とこでは,c:\java2\appserver\glassfishv4
)。
IntelliJの設定
いつでも良いんだけど,この順番の方が説明しやすいのでインスコしたGlassFishをIntelliJに登録しとく。設定方法は,"Settings -> Application Servers -> Add" で "Glassfish Server" を選び,Glassfish Homeに先の $AS_INSTALL
を指定する。
"Add"押してもメニューにGlassfishが出てこない場合は,Glassfish Server Pluginが無効になってないか確認しといて。
プロジェクトの作成
ふつうにscratchプロジェクトにJava Module作ってサクサク進める。
Facetを選ぶところで,"Web Application"を選び,Versionに "3.0"を指定する。3.0からweb.xmlは必須じゃないので,"Create web.xml"のチェックボックスは非選択になっとるんで,そのまま続行。
#この画面は,最近のEAPで変わったんで見覚え無い人も居るでしょう。
これでプロジェクト作成はおしまい。
サーブレット作成
Newメニュー(ALT+Insert)のServletは,まだ3.0のweb.xml無しバージョンに対応してないらしく,選ぶとこんなエラーがでる。
仕方ないので,普通にJavaクラスを作成して,それをサーブレットに編集する。
ちょっと説明が回りくどいんだが,上図のようにHttpServletの参照を解決できないって文句言われる。JavaEE5までなら修正候補に"javaee.jar設定しよか?"ってのが出るんだけど,今回は出ない。$IDEA_HOME/lib
を覗いてみたら,まだJavaEE6のライブラリが同梱してなかったんで,まだJavaEE6対応は発展途中なんだろな,と。
仕方ないので,"Project Structure -> Module 'javaee' -> Dependencies -> Add" で "Application Server Libraries" を選び,さっき登録した Glassfish を指定する。これでJavaEE6のライブラリ参照は解決。
あとはサクサク,コードを手打ちしてくだけ。しんさんとこのCalcクラスとHogeサーブレットが出来たら,"Run/Debug Configurations" に Glassfish を設定して実行してみる。
CalcクラスをEJB lite化したくばするが良い。Glassfishが動いていればビルド後たちまちデプロイされる。
IntelliJはEclipseやNetBeansみたいなインクリメンタルビルドが無いんだけど,誰かが「Ctrl+S (Save All) を Make Project にリバインドすればいいんじゃね?」と言った。それが便利かどうかはわからんけど。
まとめ
まだIntelliJのJavaEE6サポートには「IntelliJらしさ」がないなーって感じ。それより,EJBの簡単っぷりに吹いた。
こんなに簡単になったのに,後方互換のために,あのクソみたいなEJB2.xをサポートし続けるAPサーバやIDEがかわいそうに思えてならない。:-P
参考リンク
→ http://d.hatena.ne.jp/nowokay/20090611#1244682753
→ http://d.hatena.ne.jp/shin/20090924/p2