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の設定

いつでも良いんだけど,この順番の方が説明しやすいのでインスコしたGlassFishIntelliJに登録しとく。設定方法は,"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が動いていればビルド後たちまちデプロイされる。


IntelliJEclipseNetBeansみたいなインクリメンタルビルドが無いんだけど,誰かが「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