Java EE 開発時に便利なデータソースリソースの登録方法
GlassFishにリソースを追加する方法4つまとめてみた - なにか作るの記事に関連して。
Java EE 開発でデータベースに接続するには、まずアプリケーションサーバーにデータソースを登録する必要がある。開発時に開発者の各環境でデータソースを作成してもらうのは手間。そういう時に使える方法を紹介する。
1.DataSource Resource Definiton を使う
この方法が一番楽。Java EE 6 からアノテーション、あるいはデプロイメント記述子への記述によってデータソースリソースを定義することができる。
DataSource Resource Definition in Java EE 6 (Enterprise Tech Tips)
この方法はアプリケーションサーバーを選ばないので、別のアプリケーションサーバーに切り替えてもそのまま動作する。でも、vendor specific なオプションを付与することもできるようだ。
アノテーションでも同様に定義できるようだけど、どこに書くか迷うし、web.xml に書いておけばいいような気がする。
2.アプリケーションサーバー固有の設定ファイルを使用する
何らかの理由で 1 の方法がとれない場合があると思う。(たとえば、WildFly だと JPA と組み合わせたときに問題があるようだ。[WFLY-2727] @DataSourceDefinition defined data source can't be used in persistence.xml with CDI entity listeners - JBoss Issue Tracker)。
そんなときは、アプリケーションサーバー固有の設定ファイルを使用する。Tomcat の context.xml が有名かもしれないが、Wildfly であれば *-ds.xml ファイルを WEB-INF ディレクトリー以下に配置する。
GlassFish なら glassfish-resources.xml を WEB-INF ディレクトリー以下に配置する。
これでよし。