Psalm

プログラマ向け技術メモ

TomcatのJNDIデータソースをJavaアプリケーションから参照。

2009-02-10 17:50:37 | Tomcat
絶賛稼働中のサーブレットのAPIを使いまわして
データをインポートするツールを作ろうとして手が止まった。
APIはTomcatのデータソース読んでDBに接続しに行くんだよね。
Tomcatのデータソースのインターフェースは外部公開されてないから
外のプログラムからは呼べないのだった・・・
てことで探してみたら、便利なツール発見。

JNDIUnitTestHelper
http://faq.javaranch.com/java/CodeBarnLibrariesAndFrameworks

落としてきたZIPを解凍してjndi_unit_test_helper.propertiesを環境に合わせて修正。
適当なところに置く。
クラスパスが通っているところならどこでもいいらしい。
ログイン名とパスワードも適当に。

com.javaranch.unittest.helper.sql.pool.JNDIName=java:comp/env/jdbc/[Tomcat側で設定した名前]
com.javaranch.unittest.helper.sql.pool.dbDriver=org.postgresql.Driver
com.javaranch.unittest.helper.sql.pool.dbServer=jdbc:postgresql://localhost:5432/[DB名]
com.javaranch.unittest.helper.sql.pool.dbLogin=postgres
com.javaranch.unittest.helper.sql.pool.dbPassword=password

で、コードに以下を追加。相対パスなので注意。

JNDIUnitTestHelper.init("lib/jndi_unit_test_helper.properties");

以上。簡単ですねー。
Tomcat設定ファイルの代わりにjndi_unit_test_helper.propertiesを読んで
DB接続してくれます。
いやー、同じようなことで困った先人がいると楽でいいよね。笑