NetBeans&GlassFish4でJava EE 7 を始めよう

Java EE 7 のリリースが6月12日にせまってきていますが、GlassFish4の開発版が同梱されているNetBeansの開発版(nightly build)を使うと、一足先にJava EE 7 アプリケーションのコーディングをすることができます。普段Eclipse+JBossToolsを使っていて、NetBeansのプロジェクトの作り方を知らなかったので、以下にメモしておきます。

1. NetBeansとGlassFish4をインストールする

NetBeansのダウンロードサイト(nightly build)にアクセスして、Java EE 対応のNetBeans開発版をダウンロードします。あとはそのまま各OSごとのインストール方法(基本的にはNextを連打で)でインストールします。
GlassFish4はNetBeansに同梱されているため、NetBeansをインストールすると一緒にインストールされます。

2. Java EE 7 対応のMavenプロジェクトを作成する

NetBeansが起動したら、Projectsウィンドウ上で右クリックして、[New Project]を選択します。

f:id:n_agetsuma:20130604204031p:plain

CategoriesにMavenを指定し、Web Applicationを選択します。
Java EE 6からはEJBもWARアーカイブに含めることができるため、手元で試す小さなアプリケーションであれば、Web Applicationを選択すると便利だと思います。

f:id:n_agetsuma:20130604204121p:plain

Project Name に作成したいプロジェクト名を入力します。あと、Group IdにMavenのグループIDを入力します。GroupIdはパッケージ名のプレフィックスにもなります。

f:id:n_agetsuma:20130604204523p:plain

ServerはGlassFish Server4.0、Java EE VersionにはJava EE 7 Webを選択します。
余談ですが、開発版では長らく対応してなかったWildFry(JBossAS7)にも対応しているため、NetBeans上でWildFryで開発することもできます。

f:id:n_agetsuma:20130604204623p:plain

プロジェクトができたら、Filesウィンドウからsrc/mainの配下にresourcesフォルダを作成します。
JPAを使う時にこのresourcesフォルダ配下にさらにMETA-INFフォルダを作ってpersistence.xmlを作ったり、Java EE 7から導入されるJava Batchにおいてresources/META-INF/batch-jobs/にジョブ定義XMLファイルを格納して、ビルドしたアーカイブのルートにMETA-INFが作成されるために使います。

f:id:n_agetsuma:20130604205233p:plain

フォルダ名にはresourcesを入れるだけです。これが正しいやり方?なのかはわかりませんが、通常のmavenと違って、NetBeans経由でMavenプロジェクトを作成すると、resourcesフォルダは作成されないようです。

f:id:n_agetsuma:20130604205319p:plain

以下のような構成のプロジェクトができると思います。
ここにどんどんソースコードを追加して、Java EE 7 のAPIを試すことが今日からできます。

f:id:n_agetsuma:20130604210419p:plain

3. GlassFish4の起動

GlassFishにはasadminという強力なコマンドライン管理ツールがありますが、Java EE 7のアプリケーションを試してみたい場合は、NetBeansから簡単に起動することができます。画面真ん中上部の再生ボタンを押すだけで起動し、先ほど作成したプロジェクトがデプロイされます。

f:id:n_agetsuma:20130604205634p:plain

ブラウザが起動してきて、Hello Worldがでてくれば成功です。

f:id:n_agetsuma:20130604205655p:plain

(参考) Java EE 7 フルプロファイルを使用する場合

JMS、Java Batchなど、Webプロファイルに含まれない機能を試したい場合は、今までに作成した設定に加えて、pom.xmlを少し修正する必要があります。artifactId要素をjavaee-web-apiからjavaee-apiに1行書き換えるだけです。

f:id:n_agetsuma:20130604205850p:plain

Dependenciesにjavax.batchなどのフルプロファイルに含まれるAPIが出てくると思います。

f:id:n_agetsuma:20130604205921p:plain

おわりに

数十分でアプリケーションをコーディングするところまでたどり着けるNetBeans&GlassFish4の組み合わせはすごく強力だと思います。自分自身、普段は別のIDEを使っていますが、少し調べるだけで起動するところまで辿り着くことができました。

これでJava EE 7 がコーディングし放題です。