- PR -

Tomcat5.5でのデータソースの設定について

投稿者投稿内容
たけ
常連さん
会議室デビュー日: 2004/02/23
投稿数: 42
お住まい・勤務地: 神奈川県/東京都
投稿日時: 2005-06-09 20:58
お世話になります。

現在以下の環境でデータベース接続の勉強をしています。
 OS   :Windows2000 SP4
 JVM   :1.5.0_03-b07
 コンテナ:Apache Tomcat 5.5.9
 DB   :MySQL 4.0.22
 JDBC  :mysql-connector-java-3.0.16-ga-bin.jar
 統合環境:Eclipse 3.0.1

データソースを使ってデータベースと接続しようとしているのですが、
以下のエラーが出てしまい、うまくいきません。
 javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'

過去ログやJakarta Projectのホームページを見てserver.xmlの記述を直したりしているのですが、
どうにもうまくいかず行き詰まっています。

どなたかおかしい箇所を教えていただけないでしょうか。
よろしくお願いいたします。

server.xml は始めから記述してあった <Host></Host> の間に
以下の記述を追加しました。

 <Context path="/test" reloadable="true" docBase="C:/eclipse/workspace/test"
  workDir="C:/eclipse/workspace/test/work" />
   <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
      username="jsp10" password="jsp10"
      driverClassName="com.mysql.jdbc.Driver"
      url="jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=sjis"
      maxActive="10" maxIdle="5" maxWait="5000"
      validationQuery="SELECT count(*) FROM testdb" />
 </Context>

また、それとは別にC:/eclipse/workspace/test以下にMETA-INFディレクトリを作成し、
そこにcontext.xmlを作成して、上記のContextタグを書いてみました。

しかし、どちらもうまくいきませんでした。


test/WEB-INFには以下の内容を記述したweb.xmlを置いてあります。

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

   <resource-ref>
     <res-ref-name>jdbc/test</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
   </resource-ref>
 </web-app>

参考にしたのは以下のページです。
 ・過去ログ
  http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19752&forum=12&3

 ・Jakarta Project
  http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources-howto.html
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-06-09 22:50
MySQLのJDBCドライバはどこに配置されていますか?
Odakaz
ベテラン
会議室デビュー日: 2004/05/24
投稿数: 70
投稿日時: 2005-06-09 22:59
接続URLにポート番号の指定は必要ありませんでしたっけ?

あとは、設定ファイルを手書きじゃなくてAdministrator Toolで設定してみるとか・・・。
たけ
常連さん
会議室デビュー日: 2004/02/23
投稿数: 42
お住まい・勤務地: 神奈川県/東京都
投稿日時: 2005-06-10 09:38
>かつのりさん
JDBCドライバは、%CATALIMA_HOME%/common/lib以下に置いてあります。
試しにEclipseでプロジェクトに追加もしてみましたがだめでした。

>Odakazさん
参考書や参考にしたホームページではポートを指定してなかったので、
指定せずにやりました。
指定しなければだめなんでしょうか?
Administrator ToolといのはTomcatのやつですか?
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-10 11:02
どもども

contextレベルでJDBCのリソース定義をしているようですね。
以前Tomcat5.0にて同様の現象があり、グローバルリソースに定義したら

javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'

が出なくなりました。
原因が同じかどうかは解りませんが、自分のケースはTomcatのバグだったと記憶しています(バグ番号は忘れました)。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-06-10 11:48
確かに私もserver.xmlに設定してはまった記憶があります。

特定のコンテキストに対する設定であれば、
$CATALINA_HOME/conf/エンジン名/ホスト名/コンテキスト名.xml
で設定するのが無難だと思います(エンジン名、ホスト名は通常Catalinaとlocalhost)。
たけ
常連さん
会議室デビュー日: 2004/02/23
投稿数: 42
お住まい・勤務地: 神奈川県/東京都
投稿日時: 2005-06-10 13:40
アドバイスありがとうございます。

グローバルリソースでの設定と、ukさんの設定を試してみます。
結果がでたら報告します。
Odakaz
ベテラン
会議室デビュー日: 2004/05/24
投稿数: 70
投稿日時: 2005-06-10 14:31
MySQLへの接続URLには、デフォルトのままならポート3306の指定が必要だったように記憶しています。この指定をしなくても良いように出来るかはわかりません。

また、Administration Tool(Administratorではありませんでした。すみません)は、TomcatのWelcomeページ左上の、"Tomcat Administration"というリンクから起動できます。ただ、Tomcat5.5ではデフォルトでインストールされなかったかも知れません。

スキルアップ/キャリアアップ(JOB@IT)