なにか作る

なにかを作るブログです。

Java EE 開発時に便利なデータソースリソースの登録方法

GlassFishにリソースを追加する方法4つまとめてみた - なにか作るの記事に関連して。

Java EE 開発でデータベースに接続するには、まずアプリケーションサーバーにデータソースを登録する必要がある。開発時に開発者の各環境でデータソースを作成してもらうのは手間。そういう時に使える方法を紹介する。

1.DataSource Resource Definiton を使う

この方法が一番楽。Java EE 6 からアノテーション、あるいはデプロイメント記述子への記述によってデータソースリソースを定義することができる。

DataSource Resource Definition in Java EE 6 (Enterprise Tech Tips)

DataSource Resource Definiton

この方法はアプリケーションサーバーを選ばないので、別のアプリケーションサーバーに切り替えてもそのまま動作する。でも、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 ディレクトリー以下に配置する。

wildfly datasource

GlassFish なら glassfish-resources.xml を WEB-INF ディレクトリー以下に配置する。

glassfish datasource

これでよし。