- PR -

MySQL用JDBCドライバが見つかりません

1
投稿者投稿内容
たららん
常連さん
会議室デビュー日: 2001/11/07
投稿数: 22
投稿日時: 2002-11-24 23:17
件名のとおりJDBCドライバが見つかりません。
ClassNotFoundExceptionになってしまいます。
CLASSPATHの問題なのだとは思うのですが、
やっぱりわかりませんでしたので教えて頂きたいと思いまして。

環境
OS:WindowsXP Professional
Apatch+Tomcat+MySQL
JDBCドライバ:
C:\jdbc\mysql-connector-java-2.0.14-bin.jar
CLASSPATH:
.;c:\jdbc\mm.mysql-2.0.2-bin.jar;%TOMCAT_HOME%\lib\common\servlet.jar

Javaソース
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
又は
Class.forName("org.gjt.mm.mysql.Driver");
又は
Class.forName("com.mysql.jdbc.Driver").newInstance();
又は
Class.forName("com.mysql.jdbc.Driver");

このいずれもでClassNotFoundExceptionが発生してしまいます。

何が悪いのかわからず自分なりに色々試しましたが
いきずまってしまいました。

ご意見よろしくお願いいたします。
pon
常連さん
会議室デビュー日: 2002/05/21
投稿数: 43
投稿日時: 2002-11-24 23:58
Webアプリケーションなら仕様で定められている場所に
配置すれば大丈夫でしょう。

環境変数を明示的に指定しなくても大丈夫です。

たららん
常連さん
会議室デビュー日: 2001/11/07
投稿数: 22
投稿日時: 2002-11-25 01:27
PONさん、ありがとうございました。

TOMCATの指定場所に入れましたら動作しました。

調べ方が足りなくて、CLASSPATHに指定する必要があるとばかり
思っていました。。。

pon
常連さん
会議室デビュー日: 2002/05/21
投稿数: 43
投稿日時: 2002-11-25 10:13
解決されて良かったですね。
最近の文献はその辺が暗黙の了解になって分かりにくいことがあるようです。

#老婆心ながらWebアプリケーション単位で使用する場合は/hoge/WEB-INF/lib
#サーバーへのものであればサーバー指定のディレクトリに配置します。
#何でもサーバーのlibにいれるとたまにいただけないことが発生します。
ジェイ
ベテラン
会議室デビュー日: 2002/10/06
投稿数: 62
投稿日時: 2002-12-20 01:32
クローズしているスレッドかも知れませんが・・・。
しかも、人のスレッドを利用してしまいすいません・・・。

私も同じ状況に陥っています。
Tomcatのlibに入れても、webapps/myapp/WEB-INF/にlibを作ってコネクタを
格納してもClassNotFoundExceptionが投げられます。
直前にapache1.3.27から2.0.43に入れ替えたときにPCがブルーバックになって
しまったので、もしかして、PC自体が死んだのかも知れませんが・・・。

それでも気になる挙動なのですが、CLASSPATHはもちろん通していますので、
c:\mysqltest.classを実行すると動き、それならと思い、c:\tomcat/webapps/myapp/の
中に、mysqltest.classをコピーして、コマンドで実行してみたところ、こちらも
問題なく結果が取得できるのです。
servletで動かしているときだけ、ClassNotFoundExceptionが発生してしまうのです。
さらに、Tomcatがもしかしてうまく動いてない?と思い、examplesなどのサンプルを
実行させると、これも問題なく動くのです。

最終的にOSをリカバリかけようかとも思っているのですが、できればリカバリは
回避したいので、原因がわかる方がいらっしゃれば、ご教授願います。

[ メッセージ編集済み 編集者: ジェイ 編集日時 2002-12-20 01:33 ]
pon
常連さん
会議室デビュー日: 2002/05/21
投稿数: 43
投稿日時: 2002-12-20 10:24
まず整理しましょう。
OSのシステムに関する環境変数はJAVA_HOMEなどのみで
CLASSPATHは削除してください。
ビルドする場合はその都度ローカルで設定するのがベターです。
バッチやシェル、ANTやMakeでやるといいでしょう。(もちろんIDEでも可)
またJNDIを使わないのでしたらTomcat共通のLibには入れないでください。
そのうち困ることがおきる可能性があります。
#単体アプリでも動いているようなので。
そしてlibにはJARを入れてください。ZIPはだめです。
#Tomcat4系の場合ですが。J2EE1.3の仕様なので。たしか。

それでもだめな場合はTomcatを再度インストールされてはいかがでしょうか?
OSはあまり関係ないかもしれません。

あとTomcatはバージョンによって大幅に違うので明記されたほうがいいでしょう。
OSは大雑把でも差し支えないのですが・・・(無くてもいい場合が多いです)
ジェイ
ベテラン
会議室デビュー日: 2002/10/06
投稿数: 62
投稿日時: 2002-12-23 17:08
ちょっと旅にでてました。
レスが遅くなり、申し訳ございません。

Tomcatの再インストとご指摘のとおり、CLASSPATHに含めずに、
WEB-INF/libにだけ格納して、再度試してみたいと思います。
1

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