dポイントプレゼントキャンペーン実施中!

JDBC接続を現在勉強しています。
そこで、eclipseの中にTomcatをプラグインして、javaからデータベースに接続を心みているのですが、エラーが出て自分なりにいろいろ試したのですが、どうしてもエラーが消えません。

ご指摘いただけたらと思います。

エラー内容
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

環境内容
windows xp professional
Eclipse 3.3 (C:\eclipse)
Tomcat 5.5 (C:\eclipse\servers\tomcat-5.5)
java (C:\Program Files\Java\jdk1.6.0_06)
MySQL (D:\mysql-5.0.67-win32 データベースはDドライブにおいています)
JDBCドライバー mysql-connector-java-5.1.6-bin.jar(C:\eclipse\servers\tomcat-5.5\common\libの配下に設定)

PATHの設定
CLASSPATH C:\eclipse\servers\tomcat-5.5\common\lib

javaのソースコード

import java.sql.*;

public class JdbcMySQLTest {
public static void main(String[] args) {
try {
// ドライバクラスをロード
Class.forName("com.mysql.jdbc.Driver"); // MySQLの場合

// データベースへ接続
String url = "jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=SJIS";
Connection con = DriverManager.getConnection(url);

// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
String sql = "SELECT * FROM HELLO_WORLD_TABLE";
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
// 検索された行数分ループ
while (rs.next()) {
// NOを取得
int no = rs.getInt("NO");
// 言語を取得
String lang = rs.getString("LANGUAGE");
// メッセージを取得
String msg = rs.getString("MESSAGE");
// 表示
System.out.println(no + " " + lang + " " + msg);
}
// データベースから切断
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

上記コードをEclipseから実行しますとコンソール上に
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at jp.co.Beas.JdbcMySQLTest.main(JdbcMySQLTest.java:11)

になってしまいます。
JdbcMySQLTest.java:11からcom.mysql.jdbc.Driverが
ないですよ~といっているのは理解しているのですが
そこでいろいろドライバーの配置などを変更したのですが
エラーがやはりかわりません。

ながながとなって申し訳ございませんが、ご教授いただけたらと思います。

A 回答 (3件)

コントロールパネル→管理者ツール→サービス→Apache Tomcat で「サービスの状態」を一度「停止」し、「スタートアップの種

り替え、再度「サービスの状態」を「開始」にしてみたうえでJDBC接続を行ってみてはどうでしょうか?
    • good
    • 0

http://wert.at.webry.info/200507/article_3.html
参照してください。
「2.Tomcat5.0 以降 Context の定義の仕方が変わっている。
従来server.xmlに書いていたContextの定義を別ファイルにして
conf/Catalina/localhost/<webapp名>.xmlとする」
多分、これが原因だと思います。
    • good
    • 0

<TOMCAT_HOME>\<サービスフォルダ>\WEB-INF\lib



配下に配置したらどうですか~!?
    • good
    • 0
この回答へのお礼

ogohsさん
 回答ありがとうございます。

--------------------------------------------
         引用
<TOMCAT_HOME>\<サービスフォルダ>\WEB-INF\lib
----------------------------------------------
ということですが、データベースをTomcatで共有するとには
common/libファイルの配下にドライバー置くのが基本ではないのでしょうか?

admintoolの設定でもコンテキストの中にドライバー設定はせず
リソースの中にあるデータソースにドライバーの設定をしている
形なんですが、やはり<TOMCAT_HOME>\<サービスフォルダ>\WEB-INF\lib
った形でドライバを置かないと呼び込めないのでしょうか?

ご指摘の通り、ドライバを下記の場所において確認してみましたが
やはり、エラーないようが変わりません。

C:\eclipse\servers\tomcat-5.5\webapps\balancer\WEB-INF\lib\mysql-connector-java-5.1.6-bin.jar

お礼日時:2008/09/10 21:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!