Java EE 7 検証環境 WildFlyにDataSourceを手動で作成
「Java EE 7 検証環境構築(1) WildFly + JBoss Tools で EARプロジェクトを作成し Arquillian で ユニットテストをグリーンにするところまで」 から「Java EE 7 検証環境構築(16) WildFly と Apache を mod_jk で連携させる(Widows)」までで、環境構築、アプリケーション、ユニットテスト、Webサーバーとの連携、と、大枠のやりたい範囲を動くようにすることはできたと思う。
ここからは、気になった点などを適宜まとめていこう。
ということで、
Java EE 7 検証環境構築(2) WildFly に DataSourceを作成
していたのだが、WildFly 8 Administration を見ると、DataSourceの作成には、以下の3通りの方法がある
- 手動でのデータソース設定
- CLIを利用したデータソース設定
- デプロイリソース(アプリケーション同梱)としてのデータソース設定
ようだ。
実は、Java EE 7 検証環境構築(2) WildFly に DataSourceを作成 行った方法がまずいのかどうなのかわからないが、Eclipseでテストなどしていると、デプロイしたJDBC ドライバーがWildFlyから消えてしまう事象が頻繁に発生する(何らかのきっかけでテストアプリケーション扱いされて消えてしまう?)。
まぁ、deploy コマンドをながすだけ、再度デプロイできるのだが、やはり気持ち悪いので別の方法を検討してみる。
1. 手動でのデータソース設定
一番素早く設定できる方法ではないが、仕組みを理解するにはよいようだ。
サーバーの設定ファイルに、以下のステップを踏む。
- JDBCモジュールの作成
- データソースとドライバの定義
1.1 JDBCモジュールの作成
アプリケーションサーバーのモジュールは、modules ディレクトリにインストールされる。
1.1.1 パスの構造を、JBOSS_HOME\modules ディレクトリのファイルに作成しJDBCドライバを配置
MySQLを例にすると
JBOSS_HOME/modules/com/mysql/main
ディレクトリを作成し、JDBCドライバをコピー
1.1.2 module.xml ファイルを作成する
JDBCドライバを配置したディレクトリに、以下のような内容のmodule.xml ファイルを作成する。
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.30-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
1.1.3 アプリケーションサーバー設定ファイルを編集する
standalone モードの場合、standalone.xml を編集する。
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/gnomeDS" pool-name="gnomeDS" enabled="true">
<connection-url>jdbc:mysql://localhost:3306/gnome</connection-url>
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>*****</password>
</security>
</datasource>
<drivers>
<driver name="mysql" module="com.mysql" />
</drivers>
</datasources>
</subsystem>
1.1.4 接続確認
WildFly を再起動。
管理コンソールで、追加したデータソースが表示されているのを確認できる。
おお! テスト接続成功!
不惑をすぎても、この瞬間がうれしい。
この感覚がないと、この仕事はやってられないだろうなーなんて。
あとは、しばらく問題が発生しないか試してみよう。
