- - PR -
TOMCATでのデータソース接続
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-18 23:15
お世話になっております、二度目の書き込みになります。
TOMCATでのDB2データソース接続を試みているのですが、どうも上手くいかず 原因が分かりません。 WebSphereApplicationServerではできたので、JAVA側ではなくて TOMCAT側に何か問題がありそうなのですが…。 TOMCATのserver.xmlに追加 <Context path="/Test" docBase="Test" debug="0" reloadable="true"> <Resource name="jdbc/sample" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/sample"> <parameter> <name>username</name> <value>[DB2のユーザ名]</value> </parameter> <parameter> <name>password</name> <value>[DB2のパスワード]</value> </parameter> <parameter> <name>driverClassName</name> <value>COM.ibm.db2.jdbc.app.DB2Driver</value></parameter> <parameter> <name>url</name> <value>jdbc:db2:SAMPLE</value> </parameter> </ResourceParams> </Context> アプリケーションのweb.xmlに追加 <resource-ref> <description /> <res-ref-name>jdbc/sample</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Application</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> また、TOMCATのcommon/libにDB2のdb2java.zipの拡張子をjarに変えたものを入れました。 クラスパスを通すやり方はこれでよかったのでしょうか? サーブレットの記述 Properties env = new Properties(); env.setPropert(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"); Context ctx = new InitialContext(env); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/sample"); ここを書き換えたりするのでしょうか? [ メッセージ編集済み 編集者: Oz 編集日時 2006-12-18 23:27 ] | ||||
|
投稿日時: 2006-12-18 23:51
どう上手くいかないのでしょう?
クラスパスの通し方は no suitable driver といった例外がドライバロード時に出ていないのであれば合っていると思います。 | ||||
|
投稿日時: 2006-12-19 10:19
Tomcatのバージョンがわからないのですが、5.5だとすると以下が参考になりませんか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34807&forum=12&start=16&20 | ||||
|
投稿日時: 2006-12-19 12:19
>インギ様
返信ありがとうございます。 同じプログラムをデータベースに直接接続したときは正常に表示され、 データソース接続にしたときにエラーが出ました。 そのほかのプログラムは全く変えていないのでそう判断しました。 >uk様 ありがとうございます。 バージョンを書き忘れていました。失礼いたしました。 5.5.17です。 お教えいただいたURLが参考になりそうなので拝見しましたが、 C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost にコンテキスト名.xmlというファイルがなかったのですが 新規作成しないといけないのでしょうか。 context.xmlというファイルはあるので、そちらに書けばよいのでしょうか。 お教えいただいた記事に従ってconf/server.xmlやアプリケーションのWEB-INF/web.xmlに 記述を追加してみましたがやはりうまくいかないです・・・(エラーが出ます) | ||||
|
投稿日時: 2006-12-19 12:41
どう上手くいかないのでしょう?
別の言い方をすると、どのようなエラーがでるのでしょう? エラーメッセージをキーワードに Google でしらべたりすると回答が出てくる場合がありますよ。 | ||||
|
投稿日時: 2006-12-19 12:44
はい、その通りです。Testというコンテキスト名のようですので、Test.xmlを作成して ください。 | ||||
|
投稿日時: 2006-12-19 13:29
Tomcatにcom.ibm.websphere.naming.WsnInitialContextFactory なんてないと思うのですが。どなたもツッコミ入れないので書いておきます。 アプリケーションでInitialContextに環境プロパティを指定すると 移植性が損なわれるので可能な限り避けた方が無難だと思いますよ。 その辺りはJ2EEコンテナが構成してくれているはずです。 ところで、なぜエラーの詳細を書かないのでしょう? | ||||
|
投稿日時: 2006-12-19 14:24
>インギ様 あしゅ様
申し訳ありません。 エラーの詳細ですが、PrintWriterのprintlnでExceptionをブラウザ表示させてもjava.lang.NullPointerExceptionとしか出てこず、あまり参考にならないかと思い 書き込みしませんでした。 すいませんでした。 サーブレットの記述を Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/sample"); としてみましたがやはり同じでした。 >uk様 ありがとうございます。 Test.xmlに <?xml version="1.0" encoding="UTF-8"?> <Context path="/Test" reloadable="true"> <Resource auth="Container" name="jdbc/sample" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/sample"> <parameter> <name>username</name> <value>ユーザ名</value> </parameter> <parameter> <name>password</name> <value>パスワード</value> </parameter> <parameter> <name>driverClassName</name> <value>COM.ibm.db2.jdbc.DB2DataSource</value></parameter> <parameter> <name>url</name> <value>jdbc:db2:sample</value> </parameter> </ResourceParams> </Context> と記述し、何度かTOMCATを再起動してみましたが変わらないです・・・。 (同じくNullPointerExceptionが出ます) |
1|2|3
次のページへ»