- - PR -
JDNIにてデータベースに接続できません
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-09-05 11:01
初めて投稿します
tomcat5.5を使用してpostgreSQLに接続しようと試みているのですが エラー org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' と出てしまい出来ません 環境が All-in-one Eclipse3.1 tomcat5.5 struts1.3.8 postgresSQL8.2 server.xml <DefaultContext> <Resource name="jdbc/posegres" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/postgres"> <parameter> <name>username</name> <value>postgres</value> </parameter> <parameter> <name>password</name> <value></value> </parameter> <parameter> <name>driverClassName</name> <value>org.postgressql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:postgresql://192.168.1.138:5432/webcomtest</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> </ResourceParams> </DefaultContext> web.xml <resource-ref> <description>postgreSQL DataSource example</description> <res-ref-name>jdbc/postgres</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>CONTAINER</res-auth> </resource-ref> jdbcドライバpostgresql-8.2-504.jdbc3.jarをweb-inf上の libファイルにコピーしてあります。 どなたか分かる方ご教授いただけないでしょうか? |
|
投稿日時: 2007-09-05 11:49
JNDIはTomcatがWebアプリなどに提供するサービスなんですから、
JDBCドライバは、Webアプリのライブラリとして追加するのではなく、 Tomcatのクラスローダから見えるように、 Tomcatのライブラリとして追加する必要があります。 $CATALINA_HOME/common/libや$CATALINA_HOME/server/libなどにあるものがそれです。 どこに入れればいいのかは、検索してみてください。 |
|
投稿日時: 2007-09-05 13:04
早速の返信ありがとうございます。
ご摘通りにjdbcをtomcatのライブラリに追加いたしましたがエラーは変わりませんでした。 xml設定でどこかおかしな点などありますでしょうか? |
|
投稿日時: 2007-09-05 13:22
org.postgresql.Driver では?
|
|
投稿日時: 2007-09-05 13:56
ご指摘ありがとうございます。
ですが、直してもエラーは変わりませんでした。 このエラーはユーザ名やパスワードが間違っていても 出すものなのでしょうか? |
|
投稿日時: 2007-09-05 15:08
文法が違うのでは?
「UserGuide」の“9) JDBC DataSources”は読みましたか? http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html |
|
投稿日時: 2007-09-05 15:14
Java僧さんの言うとおり、コンテキスト記述子の記述誤りですね。
Tomcat5.5系と5.0系では、JNDIリソースの設定方法が異なります。 詳しくはこちらを見て下さい。 http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html ちなみに、こちらが5.0系のものです。 http://tomcat.apache.org/tomcat-5.0-doc/jndi-resources-howto.html http://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howto.html ところで、5.0系の書き方をどこから見つけたのか気になります。 どこかに5.0系の方法を喧伝しているサイトか本があるのでしょうか? 同じような質問が、私の覚えている限りで既に3回もあったものですから。 |
|
投稿日時: 2007-09-05 15:36
返信ありがとうございます
解決しました。 他のサイトにあったMETA-INF上にcontext.xmlを新しく作り その中に記述し tomcat/conf上にあったcontext.xmlの中に <WatchedResource>META-INF/context.xml</WatchedResource> と書き込み読みにいかせることで解決しました こうすることでwarにして他のパソの持ち込んでもtomcatのserver.xmlを書き換える 必要が無いらしいので・・・ 以前書き込んでいたものは この記述方法はネット上で拾ってきたものです。 トムのバージョンによって書き方が変わるとは知りませんでした ありがとうございました。 |