1.準備
JBoss は 4.2.3GA を準備。
MySQL は 5.1.58 community を準備。
インストール後に以下の手順が必要になります。
1.1. データベーススキーマの作成
MySQLに任意の名前でスキーマを作成します。既に存在していればそれを使用しても構いません。
詳細は省略します。
1.2. MySQL用のJDBCドライバーを配置
ここ( MySQL :: Download Connector/J )から対応するJDBCドライバーをダウンロードします。
その後、 mysql-connector-java-5.1.6.jar を以下のディレクトリに配置します。
{JBossのインストールディレクトリ}/server/default/lib/
2.Datasource の定義ファイルを作成
2.1. ファイルの作成
以下のようにファイルを作成する(中身は空で良い)
ディレクトリ:{JBossのインストールディレクトリ}/server/default/deploy
ファイル名:{任意の名前}-ds.xml
ちなみに自分はここでファイル名を ds-hogehoge.xml としてしまったために、
JBossが以下のように表示するだけで全く読み取ってくれなくて悩んでたのは秘密。
いやー、ホント悩んだ。
--- Incompletely deployed packages --- org.jboss.deployment.DeploymentInfo@13376b0a { url=file:/C:/Servers/jbos-4.2.3.GA/server/default/deploy/ds-hogehoge.xml } deployer: null status: null state: INIT_WAITING_DEPLOYER watch: file:/C:/Servers/jboss-4.2.3.GA/server/default/deploy/ds-hogehoge.xml altDD: null lastDeployed: 1325039984621 lastModified: 1325039984621 mbeans:
2.2. Datasource の定義を記述
2.1.で作成したファイルに以下のように記述する。
JNDI名 jdbc:mysql://ホスト名:ポート番号/スキーマ名?useUnicode=true& characterEncoding=UTF-8 com.mysql.jdbc.Driver ユーザー名 パスワード org.jboss.resource.adapter.jdbc.vendor. MySQLExceptionSorter 8 8 0 JNDI名
3.JBoss に Datasource が登録されているか確認
この状態で JBoss を起動。以下のように表示されJNDIに登録されればとりあえず成功です。
15:21:23,170 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=JNDI名' to JNDI name 'java:JNDI名' 15:21:23,189 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../deploy/jmx-console.war/ 15:21:23,316 INFO [Http11Protocol] Coyote HTTP/1.1を http-127.0.0.1-8080 で起動します 15:21:23,330 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009 15:21:23,340 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 7s:379ms
4.S2JDBC経由でデータベースにアクセス
登録したJNDIを使ってデータベースに接続するにはアプリケーションの jdbc.dicon を以下のように記述。
100 @org.seasar.extension.j2ee.JndiResourceLocator@lookup("java:データソース名")
自分はこれで出来たが、諸事情により実行結果の画面やログは省略させてもらいます。
今回参考にさせていただいたサイト
JBossにMySQL用のデータソースを定義する方法について参考にさせていただいた
JBoss/MySQLと接続する / http://www.masatom.in/pukiwiki/JBoss/MySQL%A4%C8%C0%DC%C2%B3%A4%B9%A4%EB/
S2JDBCでJBossのデータソースを利用する方法について参考にさせていただいた
APサーバのコネクションプールを使う : JDBCの設定 / http://s2container.seasar.org/2.4/ja/jdbc.html#GenericApplicationServer
途中でそもそもJBossって何だ?ってなった時に参考にさせていただいた(JBossってTomcatを含んでるものなのね。そりゃtomcatより起動とか遅いわけだ…)
TomcatとJBossの違い - OpenGroove : http://open-groove.net/tomcat/difference-tomcat-jboss/