- - PR -
Tomcat-StrutsによるOracleDB接続エラーについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-07-02 16:34
皆さん、はじめまして。
Tomcatを用いたServletサービスにおける開発初心者です。 現在、Tomcat-Strutsを用いたWebアプリケーションからOracleへの接続を行っておりますが、JNDIサービスにおけるエラーが解消されず、悶々とした時間を過ごしています。 〔環境〕 OS:Win2000 Pro. Tomcat5.0.25 Oracle 9i server.xmlにおけるResource情報は以下のとおり設定しております。 <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/> <Resource name="jdbc/oracledb" type="javax.sql.DataSource"/> <ResourceParams name="UserDatabase"> <parameter> <name>factory</name> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter> <parameter> <name>pathname</name> <value>conf/tomcat-users.xml</value> </parameter> </ResourceParams> <ResourceParams name="jdbc/oracledb"> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>password</name> <value>aaaa</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@DBServerIP:1521:jj</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.pool.OracleConnectionPoolDataSource</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>username</name> <value>UserID</value> </parameter> </ResourceParams> </GlobalNamingResources> ------ また、web.xmlファイルには、次のように設定しています。 <resource-ref> <description>JJ-jinji System</description> <res-ref-name>jdbc/oracledb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ------- 実行を行うと、JNDIサービスにおいてDataSourceが取得できず、以下のメッセージが表示されてしまいます。 javax.naming.NameNotFoundException: jdbc/oracledb at com.sun.jndi.fscontext.RefFSContext.getObjectFromBindings(RefFSContext.java:400) at com.sun.jndi.fscontext.RefFSContext.lookupObject(RefFSContext.java:327) at com.sun.jndi.fscontext.RefFSContext.lookup(RefFSContext.java:146) at com.sun.jndi.fscontext.FSContext.lookup(FSContext.java:127) (中、省略) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644) at java.lang.Thread.run(Thread.java:534) ---------- JNDIサービスを正常に処理させるには、どのようなResource情報の設定を行えば宜しいでしょうか? ご教示頂ければ幸いです。 | ||||
|
投稿日時: 2004-07-02 17:12
私のserver.xmlの下のほうは、以下のような感じになってます。
ご参考まで。 | ||||
|
投稿日時: 2004-07-02 17:17
はじめまして、回答ではありません。
エラーが出ているようでしたら ログを確認してはどうでしょうか? Tomcatをインストールしたパスの下にlogディレクトリが あり、アクセスした時のログがあります。 それで原因を突き止められると思います。 参考になれば。 | ||||
|
投稿日時: 2004-07-05 14:36
ありがちなパターンですが、lookupの名前を間違っているということはないでしょうか。
Tomcatの場合 正:lookup("java:comp/env/jdbc/oracledb"); 誤:lookup("jdbc/oracledb"); こんな間違い私だけ? APサーバーによって違うから性質が悪い・・・ | ||||
|
投稿日時: 2004-07-05 17:52
tabbyさんのご返答を参考にコードを書き換えた後、再度実行してみましたところ、次のようなエラーメッセージに変わりました。
------ org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause: java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:243) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:743) (以降、省略) ------ 色々と調べてみたところ、ドライバが認識されていないとの結論に達したのですが、必要な*.jarファイルは全て、%Tomcat%\common\lib及び%Tomcat%\webapps\usedir\WEB-INF\lib配下にコピーしています。 その他に、定義ファイル内に書き込まなければならない情報はあるのでしょうか。 _________________ | ||||
|
投稿日時: 2004-07-05 18:44
えーと、データソースの実装クラスをドライバクラスに設定してはだめでしょう。
<parameter> <name>driverClassName</name> <value>oracle.jdbc.OracleDriver</value> </parameter> では? | ||||
|
投稿日時: 2004-07-06 13:14
使用するjdbc/oracledbリソースに
パラメータが引き渡せていないように見えます。 そのため、適切なドライバが見つけられないのでは ないでしょうか? 誤:<ResourceParams name="UserDatabase"> 正:<ResourceParams name="jdbc/oracledb"> あと、ちょっと気になるのですが factoryパラメータ値は、例えば下記のように なるのではないでしょうか? <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> 参考: http://www.atmarkit.co.jp/fjava/javatips/004container003.html | ||||
|
投稿日時: 2004-07-06 13:44
どうもです。
私も最近Tomcatのバージョンを上げる際に、 アンインストール→インストールとし、 Tomcatのアドミニストレーションツール?(ブラウザから使うやつです) で、Contextの追加をしましたが、 server.xmlに変更がなかったらしく、同じエラーではまっていました。 server.xmlの説明がある書籍やホームページ等で調べればOKだと思います〜。 |