Java EE 6/Glassfish V3についてのまとめ

そういやこれかいてなかったな。

JavaEE 6をずっとおってきて過去にいろいろと書きました。Servlet API 3.0はweb.xmlすらオプションになったり、自分で必要なものをフィルターやサーブレット等に設定するコードを自由に書けるようになったりしたのがでかいです。ELにメソッドが使えるようになったのもかなりきてますね。


まずはGlassfish V3をお試しあれ。最も軽いJava EEアプリケーションサーバーです。

高速なデプロイ

Glassfish V3はEclipseNetBeans、IDEAともに対応していてすごい簡単に開発が出来るのがわかると思います。え?JavaEEサーバーは重いって?300msとかでデプロイできる環境が遅いというのならばそうなのでしょう。デプロイ時間はTomcatとかわりません。それどころかデプロイするファイルが減る可能性もありますので軽くなる場合もあります。たとえばTomcatJSTLすらないですよね。それらはアップロードする必要はありません。

機能をつけたりはずしたり。管理ツールはすべてGUIも用意されています

また、Glassfish V3は非常にプラガブルになっています。いらないものをはずしたりつけたりすることがGUIで簡単に管理できます。もちろん、通常のアプリケーションの配備やJDBCやコネクションプーリングの設定、JavaMailの設定、セキュリティ等すべてGUIで設定可能です。もちろん、コマンドラインでコマンドを打つことによっても可能です。どちらでも好きなスタイルを選んでください。

Glassfish V3は2つダウンロードするものがあります。Java EE 6の全ての機能が入ったフルスペックのバージョンとWarファイルしか使えないバージョンです。個人的にはファイルサイズが小さいことも合って公社がオススメです。そして足りない機能は後から追加すればいいだけです。

最新のServletとEL、JTA、コネクションプーリング、GUIで操作可能な管理ツール、これだけでもTomcatから乗り換える理由になりますね。これらの機能がないからDIコンテナを使うということも多いでしょうが、これらの機能を使うように設定しておけば、アプリケーションにJDBCのIDとパスワードやコネクションの設定をする必要がありません。アプリケーションはポータブルになります。warアーカイブにDB接続情報が入っているのはあまり望ましくないと考えます。

再デプロイでセッションの維持

また、Glassfish V3は再デプロイ時にセッションを維持することが可能です。これはディレクトリデプロイでもwarデプロイでも同様です。「1」というものを「2」と間違って設定してしまったために、サーバーのセッションを破棄しなくてはならない、接続中のユーザーに迷惑をかけるということがなくなります。これは地味ながら便利な機能なはずです。

管理用はポートが分かれている

Glassfishは伝統的にアプリケーション用と管理ツール用とでポートが分かれています。特定のポートだけ外につなぐことによって社内からはGUIの管理ツールにアクセスが出来て、外からはアプリケーションしかアクセスできないようにすることが容易です。もちろん、ポートは増やすことが可能です。どのアプリケーションをどこにマッピングするかすべてGUIで管理可能です。

過去のJava EE 6/Glassfish V3エントリまとめ

ふう、まとめるのちかれた。たぶん、もれがあるのでそういうのは後で追加する。
JPA 2.0ネタは見事に途中ですな。正式版が出てなかったのでというのもあるけど。
見出しをわかりやすく全部変えようと思ったけど大変なので途中でやめた。


オススメ記事は「ELの新機能」と「ui:repeatとEL Methodで世界が変わるJSF 2.0」、「JSF 2.0で作るWebアプリケーション」、「Servlet 3.0の新機能動的サーブレット/フィルター登録」、「JPA 2.0の新機能 悲観的ロックを試す」あたり。

JAX-RSアノテーションの名前や使い方がJava EE 6に含まれる1.1では多少変わっているので注意。プロデュースやコンシューマアノテーションではmimeにあわせて結果を自動で取得/変換するのは面白いと思う。ユーザーがXMLで送るのかJSONで受け取るのかそのへんの変換は全自動だからだ。開発者はBeanを作るってそれをわたすだけ。GAEでも動くはずなのでGWT等でRESTな通信をやりたいのなら選択肢としてかなり有望。HTMLはVelocity等を使って出力するしかないけど。

ちなみにSOAPであるJAX-WSはすでにJavaSEに含まれているので、もっと使われてもいい気がする。これがあの面倒だったSOAPかと思うはず。Axisとか固有の製品使う人はもういないと思うけど。