Sun Java 1.6.0_03
Tomcat 6.0.18
DB2 UDB 8.2
どこかの誰かさんが、何年か前にやってたシステムの改訂が次のお仕事。
ちょっとWebSphereの環境(旧WSADの環境)を作るのが面倒なんで、Eclipse+Tomcatで動かしてみた。
とりあえず、プロジェクトをEclipse上で作って、WebSphereに依存したjarファイルの記述を削除して、代わりにTomcatのライブラリをビルドパスに追加した。
netscape.javascript.*(LiveConnect)に関するクラス群
そうすると、netscape.javascript.*(LiveConnect)に関するクラスの参照で、コンパイルエラーが出た。
これらは、WebSphereのjaws.jarに包含されてたクラスらしく、SunのJDKのplugin.jarに同等のパッケージがあるので、それをビルドパスに追加した。
COM.ibm.db2.jdbc.app.DB2DriverがClassNoFoundException
WebSphereからDB2のJDBCドライバType2で、DBに接続していた。
Webコンテナのリソース参照でのDB接続も、デバッグ環境で個々に設定するは面倒なんで、既にアプリケーションに記述されてた下記のパターンで接続することにした。
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); Connection con = DriverManager.getConnection("【URL】"); …
ところが、Class.forNameでクラスをロードするタイミングで、ClassNoFoundExceptionが発生した。
ビルドパスにdb2java.zipはあり、ちゃんとクラスとして参照できているのに…
あれこれ原因を探っていると、環境変数の設定云々という記述をみかけた。
アプリケーションではなく、Tomcatからクラスが参照できる必要があるのでは?と考え、TomcatのクラスパスにDB2のクライアント側のJARを追加してみたら、問題なく接続できた。