Java EE 7 検証環境構築(2) WildFly に DataSourceを作成
- Java EE 7 検証環境構築(1) WildFly + JBoss Tools で EARプロジェクトを作成し Arquillian で ユニットテストをグリーンにするところまで
- Java EE 7 検証環境構築(2) WildFly に DataSourceを作成
- Java EE 7 検証環境構築(3) JPAからMySQLに接続するユニットテストをArquillianで実行
- Java EE 7 検証環境構築(4) Java EE での DI(Dependency Injection) および CDI(Contexts and Dependency Injection)をながめる
- Java EE 7 検証環境構築(5) JBoss Toolsが生成したサンプルソースのCDIを確認する
- Java EE 7 検証環境構築(6) JPA エンティティの作成と挿入
- Java EE 7 検証環境構築(7) JPA 問い合わせ(1) 名前付きクエリを使ってみる。テストでトランザクションも意識する
- Java EE 7 検証環境構築(8) JPA 問い合わせ(2) 動的クエリとCriteria API を試す
- Java EE 7 検証環境構築(9) jBatch 概要をおさえる
- Java EE 7 検証環境構築(10) JBoss Tools で作成した EARプロジェクトをJava EE 6 から 7 に変更する
- Java EE 7 検証環境構築(11) jBatch用 プロジェクトの作成を行う
- Java EE 7 検証環境構築(12) jBatch 簡易サンプル作成と Arquillian でユニットテスト
- Java EE 7 検証環境構築(13) jBatch REST サービス経由で実行する
- Java EE 7 検証環境構築(14) WildFly の管理をGUIで行う
- Java EE 7 検証環境構築(15) WildFly を サービスとして設定する(Windows/Linux)
- Java EE 7 検証環境構築(16) WildFly と Apache を mod_jk で連携させる(Widows)
ユニットテストが通る環境がととのったが、データソースが、H2とかいうJavaのテスト用Databaseなので、MySQLに差し替えていく。
1. MySQL Connector/J のダウンロード
https://dev.mysql.com/downloads/connector/j/
Platform Independent
mysql-connector-java-5.1.30.zip
解凍して、mysql-connector-java-5.1.30-bin.jar を取り出す。
2. MySQL JDBCドライバのデプロイ
まず、前提条件を,2.1 ~ 2.3 に簡単に記述する。
2.1 WildFlyの構成
まず、WildFlyの構成には以下の2種類がある
- スタンドアロン
- スタンドアロンモードは単体のJVMプロセスでサーバーを構成する
- $ ./standalone.sh で起動
- ドメイン
- 複数のサーバーを単一の管理ポイントから一元管理
- ドメインに対する設定はドメイン全体で共有される
- $ ./domain.sh で起動
2.2 JDBC登録方法
JDBCの登録方法には、以下のデプロイとカスタムモジュールの2種類ある。今回はデプロイを選択
- デプロイ
- 動的モジュール
- JARファイルは動的モジュールとして即時に読み込まれデータソースから参照可能
- ドメインによる一括管理可能
- 単一JAR対応(複数JARの場合、別モジュールとして扱う)
- カスタムモジュール
- 静的モジュール
- $JBOSS_HOME/modules 配下にJARファイルを静的モジュールとして配置
- ドメイン管理不可
- 複数のJARからなるドライバも単一のものとして扱う
2.3 管理ツール
管理ツールにも、以下の2種類が存在する
- 管理コンソール
- http://localhost:9990 で提供されるWebベースの管理画面
- 管理CLI (コマンドラインインターフェース)
- 管理操作をコマンドラインから対話的に実行できる
- $ ./jboss-cli.sh で起動する
2.4 JDBCのデプロイ
WildFlyを起動(standalone.bat)させておき、管理CLIを起動(jboss-cli.bat) して、接続(connect)し、デプロイ(deploy)する
PS C:\Programs\wildfly-8.0.0.Final\bin> .\jboss-cli.bat You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands . [disconnected /] connect [standalone@localhost:9990 /] deploy c:\work\mysql-connector-java-5.1.30-bin.jar
WildFly管理コンソール(localhost:9990) Server – Manage Deployments から確認
管理CLI jdbc-driver-info コマンドで確認
[standalone@localhost:9990 /] jdbc-driver-info NAME SOURCE h2 com.h2database.h2/main mysql-connector-java-5.1.30-bin.jar_com.mysql.fabric.jdbc.FabricMySQLDriver_5_1 mysql-connector-java-5.1.30-bin.jar_com.mysql.fabric.jdbc.FabricMySQLDriver_5_1 mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1 mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1
3.データソース
データソースは、データソースの作成、設定値の更新、有効化の手順で実施する。
3.1 定義の確認
現在の構成(MySQL構成前)を確認
[standalone@localhost:9990 /] cd subsystem=datasources [standalone@localhost:9990 subsystem=datasources] :read-resource { "outcome" => "success", "result" => { "data-source" => {"ExampleDS" => undefined}, "jdbc-driver" => {"h2" => undefined}, "xa-data-source" => undefined } }
3.2 非XAデータソースの作成
非XAデータソース作成必須項目
項目 | 内容 | 例 |
connection-url | 接続先DBのURL | jdbc:mysql://127.0.0.1:3306/tallarico |
driver-name | 使用するJDBCドライバ ・デプロイ時は、JDBCドライバファイル名 ・カスタムモジュール時はリソース名 |
mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1 |
jndi-name | JNDI名(java:/もしくは、java:jboss:/ どちらかで始まる) | java:jboss/datasources/TallaricoDS |
data-source コマンドで作成
data-source コマンドのサブコマンド
[standalone@localhost:9990 /] data-source --help --commands add disable enable flush-all-connection-in-pool flush-gracefully-connection-in-pool flush-idle-connection-in-pool flush-invalid-connection-in-pool read-resource remove test-connection-in-pool To read the description of a specific command execute 'data-source command_name --help'.
add コマンドで作成する
[standalone@localhost:9990 /] data-source add --name=TallaricoDS --connection-url=jdbc:mysql://127.0.0.1:3306/tallarico --jndi-name=java:jboss/datasources/TallaricoDS --driver-name=mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1
結果を確認する
[standalone@localhost:9990 subsystem=datasources] :read-resource { "outcome" => "success", "result" => { "data-source" => { "ExampleDS" => undefined, "tallaricoDS" => undefined }, "jdbc-driver" => {"h2" => undefined}, "xa-data-source" => undefined } }
設定可能項目を確認する
[standalone@localhost:9990 /] data-source read-resource --name=TallaricoDS --recursive=true allocation-retry=n/a allocation-retry-wait-millis=n/a allow-multiple-users=false background-validation=n/a background-validation-millis=n/a blocking-timeout-wait-millis=n/a capacity-decrementer-class=n/a capacity-decrementer-properties=n/a capacity-incrementer-class=n/a capacity-incrementer-properties=n/a check-valid-connection-sql=n/a connection-listener-class=n/a connection-listener-property=n/a connection-properties=n/a connection-url=jdbc:mysql://127.0.0.1:3306/tallarico datasource-class=n/a driver-class=n/a driver-name=mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1 enabled=true exception-sorter-class-name=n/a exception-sorter-properties=n/a flush-strategy=n/a idle-timeout-minutes=n/a initial-pool-size=n/a jndi-name=java:jboss/datasource/TallaricoDS jta=true max-pool-size=n/a min-pool-size=n/a new-connection-sql=n/a password=n/a pool-prefill=n/a pool-use-strict-min=n/a prepared-statements-cache-size=n/a query-timeout=n/a reauth-plugin-class-name=n/a reauth-plugin-properties=n/a security-domain=n/a set-tx-query-timeout=false share-prepared-statements=false spy=false stale-connection-checker-class-name=n/a stale-connection-checker-properties=n/a track-statements=NOWARN transaction-isolation=n/a url-delimiter=n/a url-selector-strategy-class-name=n/a use-ccm=true use-fast-fail=false use-java-context=true use-try-lock=n/a user-name=n/a valid-connection-checker-class-name=n/a valid-connection-checker-properties=n/a validate-on-match=false statistics=n/a
設定項目に値を設定する
–設定項目名=設定値 を半角スペースでつなげる
[standalone@localhost:9990 /] data-source --name=TallaricoDS --user-name=root --password=***** operation-requires-reload: true operation-requires-reload: true process-state: reload-required
データソースの有効化
[standalone@localhost:9990 subsystem=datasources] data-source enable --name=TallaricoDS
管理コンソールから接続確認
以上。