- 締切済み
MySQLでJDBC接続をTomcatで接続できないです。。。。
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が ないですよ~といっているのは理解しているのですが そこでいろいろドライバーの配置などを変更したのですが エラーがやはりかわりません。 ながながとなって申し訳ございませんが、ご教授いただけたらと思います。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
コントロールパネル→管理者ツール→サービス→Apache Tomcat で「サービスの状態」を一度「停止」し、「スタートアップの種類」を「自動」から「手動」に切り替え、再度「サービスの状態」を「開始」にしてみたうえでJDBC接続を行ってみてはどうでしょうか?
- afurikajin
- ベストアンサー率0% (0/0)
http://wert.at.webry.info/200507/article_3.html 参照してください。 「2.Tomcat5.0 以降 Context の定義の仕方が変わっている。 従来server.xmlに書いていたContextの定義を別ファイルにして conf/Catalina/localhost/<webapp名>.xmlとする」 多分、これが原因だと思います。
- ogohs
- ベストアンサー率33% (5/15)
<TOMCAT_HOME>\<サービスフォルダ>\WEB-INF\lib 配下に配置したらどうですか~!?
お礼
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