JavaEEではDBを使うときにglassfish内で設定が必要です。
基本的にはGlassFishでDB接続などのようにブラウザで管理画面から情報を入力することが可能です。
ただCUIや設定ファイルから一気に読み込ませることも可能ですので、その方法を紹介します。
Contents
glassfishの接続の作成方法
基本的にはJDBCプール作成→リソース作成という順番になります。
要はプールとリソースの管理をコマンドからできればOKということになります。
コマンドラインからの入力
glassfish内のコンソールへログイン
1 2 |
cd C:\Users\ユーザー名\GlassFish_Server\glassfish\bin asadmin |
コマンドラインのユーザー部分がasadminになればOKです。
以下、全てこの状態で作業を行います。
ドメイン起動
glassfishはその実行環境をドメインといわれる単位で管理します。
もうちょっとちゃんとした定義ですが、JavaEEの権威である寺田さんのブログによれば
アプリケーションサーバの管理を行う上で必要なプロセスや,設定情報等をグループ化した管理用の構成単位
のようです。
JavaEEでは基本的にはドメインが基本単位になります。まずドメイン自体を起動しないといけません。
ドメインの起動ですが、下記コマンドでOKです。(ディフォルトでdomain1が入っています。)
1 |
asadmin > start-domain domain1 |
プール作成
1 2 3 4 |
asadmin > create-jdbc-connection-pool –datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource(←MySQLはこのパス) –restype=javax.sql.DataSource (←MySQLはこっち) –property user=ユーザー:password=パスワード:DatabaseName=MySQL(MySQLはこの設定):ServerName=localhost:port=3306:URL=”jdbc\:mysql\://localhost\:3306/test(データベース名)” MySQL-Pool(←プール名) |
ping確認
プールを作成したらDBと正常につなげるかを確認します。
1 |
asadmin > ping-connection-pool プール名 |
プール一覧表示
プールを作成したらプールがちゃんと見えているかを確認しましょう。
1 |
asadmin > list-jdbc-connection-pools |
リソース作成
次に、リソースの作成を行います。リソースはプールの情報が必要になりますので、プール作成の後になります。
1 |
asadmin > create-jdbc-resource --connectionpoolid MySQL-Pool(←JDBCプール名) jdbc/mysql(←リソース作成) |
リソース一覧
作成した後に、リソースの確認を行いましょう。
1 |
asadmin > list-jdbc-resources |
これで終わりです。あとはブラウザから確認してみたり、実際にpersistence.xmlを作ったりしてみましょう。
また削除方法なども覚えておきましょう。
プール削除方法
1 |
asadmin> delete-jdbc-connection-pool 削除プール |
設定ファイルによる作成方法
もっと簡単なのは設定ファイルを一気に読み込ませる方法です。
JavaEEでglassfishを使い、デプロイしているとglassfish-resouces.xmlというファイルができるかと思います。
この設定ファイルをそのまま読み込むことでプールの作成を行えます。リソースはプール作成後、コマンドから入力をします。
以下が、glassfish-resources.xmlの例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd"> <resources> <jdbc-connection-pool datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="プール名" res-type="javax.sql.DataSource" > <property name="serverName" value="localhost"/> <property name="portNumber" value="3306"/> <property name="databaseName" value="データベース名"/> <property name="User" value="ユーザー名"/> <property name="Password" value="パスワード"/> <property name="URL" value="jdbc:mysql://localhost:3306/データベース名"/> <property name="driverClass" value="com.mysql.jdbc.Driver"/> </jdbc-connection-pool> <jdbc-resource enabled="true" jndi-name="データベース名" object-type="user" pool-name="リソース名"/> </resources> |
このファイルを下記コマンドで実行すれば無事読み込んでくれます。
1 |
asadmin > add-resources "ファイルパス" |
実はNetbeansでやるともっと簡単に作れます。ただ何も考えずにできてしまうのは逆にリスクにもなりますので、最初はあえてコマンドライン、ブラウザでの入力両方をお勧めします。
また同一環境をそろえる場合には当たり前ですが、コマンドラインのほうが便利ですね。
ちなみに下記リンクを参考にさせていただきました。
GlassFish データベースの設定