mysql:11974
From: Tetsuro IKEDA <Tetsuro IKEDA <tetsuro@xxxxxxxxxx>>
Date: Tue, 16 Aug 2005 00:46:33 -0700
Subject: [mysql 11974] Re: JAVA で Mysql にコネクトできません。
池田です。 あまり時間がないということなので・・・ ・WEB-INF/lib に mysql-connector-java-3.1.10-bin.jar をコピペする。 ・それ以外のことはしない(もちろんクラスパスへ通すことも不要) というのが必要十分条件です。 (WEB-INF/libに置いたjarファイルに対してはアプリケーションサーバによって ロードされますのでクラスパス不要) 当方の環境で mysql-connector-java-3.1.10-bin.jar を使って、 下記のテストコードを走らせると、エラー無しに終了します。 > java.lang.NoClassDefFoundError: org/aspectj/lang/Signature このエラーが出るのは、mysql-connector-java-3.1.10-bin-g.jar に対して クラスパスがどこからか通っているからだ、とConnector/Jの開発者である Mark Matthews氏も言っています。 以下の点を再度確認してみてください。 ・間違ってmysql-connector-java-3.1.10-bin-g.jarにクラスパスが通っていな いかどうか ・mysql-connector-java-3.1.10-bin-g.jarをリネームしてmysql-connector- java-3.1.10-bin.jarにしていたりはしないか ・mysql-connector-java-3.1.10-bin.jarは本当にmysql-connector-java-3.1.10 -bin.jarなのか (jar -tf mysql-connector-java-3.1.10-bin.jar を実行した際に com/mysql/jdbc/trace/Tracer.classが含まれているか否か。) leader_cat wrote: > 度々すいません。お世話になります。m(__)m > > ご指摘の"mysql-connector-java-3.1.10-bin.jar"は他で既にダウンロード済で > WEB-INF/libにコピペ済でしたが… > > (スレ・トップより) > >>[Tomcat 5.5] >> | >> + [webapps] >> | >> + [servlets_test] >> | >> + [mysql_test] >> | >> + [WEB-INF] - web.xml >> | >> + [classes] - mysql_access.java >> | | >> | + mysql_access.class >> | >> + [lib] - aspectjrt.jar >> | | >> | + mysql-connector-java-3.1.10-bin.jar(自分でここにコピー > > した) ←※ココ > >> | >> + mysql_test_index.html(これから"mysql_access"にリンク) > > > それとダウンロードし、解凍して出来た"mysql-connector-java-3.1.10-bin.jar" > は、 > 以下のようなフォルダに入れてあります。 > > "C:\mysql\mysql-connector-java-3.1.10" > > 解凍したままの為、"mysql-connector-java-3.1.10-bin.jar"も > "mysql-connector-java-3.1.10-bin-g.jar"もあります。 > > "C:\mysql\mysql-connector-java-3.1.10\src\org\gjt\mm\mysql" > には、"Driver.java"のみ存在します。 > > サーブレット上の、"Class.forName("org.gjt.mm.mysql.Driver");"って > 上記"Driver.java"を見に行ってるのではないんでしょうか? > > ちなみに上記は、以下のサイトを参考にしてました。 > "JavaでHello World JDBC(MySQL)編" > (http://www.hellohiro.com/jdbcmysql.htm) > > > > それと、ご指摘を受けてクラスパスは以下のように変えています。("C:\"で折り返 > して書いています) > > .;%JAVA_HOME%\lib\tools.jar; > C:\Program Files\Apache Software Foundation\Tomcat > 5.5\common\lib\servlet-api.jar; > C:\Program Files\Apache Software Foundation\Tomcat > 5.5\webapps\servlets_test\atmarkit\WEB-INF\classes; > C:\Program Files\Apache Software Foundation\Tomcat > 5.5\webapps\servlets_test\mysql_test\WEB-INF\classes; > C:\mysql\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin.jar; > C:\Program Files\Apache Software Foundation\Tomcat > 5.5\webapps\servlets_test\mysql_test\WEB-INF\lib > > クラスパスからご指摘のあった、 > C:\mysql\mysql-connector-java-3.1.10\src; > C:\Program Files\Java\aspectj1.5\lib\aspectjrt.jar > は削除しました。 > > C:\Program Files\Apache Software Foundation\Tomcat > 5.5\webapps\servlets_test\mysql_test\WEB-INF\lib > は、サーブレットの"mysql-connector-java-3.1.10-bin.jar"をコピペした > "WEB-INF/lib"にパスを通すのに > 必要だと思い追加しましたが… > > > > ご指摘のサンプルサイトを見て、データベースコネクトのサンプルを見つけ > 以下のjavaファイルを作り、"C:\Connecting to MySQL"というフォルダを作ってそこ > へ入れました。 > (まあサンプルのまんまなんですが…) > > 【LoadDriver.java】 > import java.sql.Connection; > import java.sql.DriverManager; > import java.sql.SQLException; > > // Notice, do not import com.mysql.jdbc.* > // or you will have problems! > > public class LoadDriver { > public static void main(String[] args) { > try { > // The newInstance() call is a work around for some > // broken Java implementations > > Class.forName("com.mysql.jdbc.Driver").newInstance(); > } catch (Exception ex) { > // handle the error > } > } > } > > コンパイル(C:\Connecting to MySQL>javac LoadDriver.java)は通りました。 > > 実行してみる("C:\Connecting to MySQL>java LoadDriver")と以下のようにサーブ > レットの時と同様のエラーでした。 > > C:\Connecting to MySQL>java LoadDriver > Exception in thread "main" java.lang.NoClassDefFoundError: > org/aspectj/lang/Signature > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Unknown Source) > at LoadDriver.main(LoadDriver.java:15) > > ここで"Class.forName("com.mysql.jdbc.Driver").newInstance();"の > "com.mysql.jdbc.Driver"が > 違うのでは?と思い、サーブレットと同様に、 > "Class.forName("org.gjt.mm.mysql.Driver").newInstance();"に > してやってみましたが同じエラーでした。 > > もちろん、クラスパスを書き換える度に、サービスの"Apache Tomcat"と"Apache"は > 再起動("停止"して"開始")しています。 > > > > 何か根本的なミスをしてるのでしょうか? > > あまり時間的余裕がありません。m(__)m > 最終的にはwebアプリとしてJSPやサーブレットからMySqlにアクセスし、 > データベースに新規登録・更新・削除等を行わなければいけません。 > > それもデータベースにコネクトが出来なければ話にならないので… > > 以上、よろしくお願いします。 > > > __________________________________ > Save the earth > http://pr.mail.yahoo.co.jp/ondanka/ > >
11944 2005-08-12 18:33 [leader cat <leader_c] JAVA で Mysql にコネクトできません。 11946 2005-08-13 02:50 ┣[Tetsuro IKEDA <tetsu] 11969 2005-08-16 10:11 ┃┗["leader_cat" <leader] 11971 2005-08-16 13:22 ┃ ┗[Tetsuro IKEDA <tetsu] 11972 2005-08-16 16:06 ┃ ┗["leader_cat" <leader] -> 11974 2005-08-16 16:46 ┃ ┗[Tetsuro IKEDA <tetsu] 11977 2005-08-16 17:40 ┃ ┗["leader_cat" <leader] 11973 2005-08-16 16:32 ┗[KIshii <kn-ishi@xxxx] 11975 2005-08-16 16:49 ┣[Tetsuro IKEDA <tetsu] 11978 2005-08-16 17:47 ┃┗["leader_cat" <leader] 11979 2005-08-16 23:11 ┃ ┗[Tetsuro IKEDA <tetsu] 11981 2005-08-17 09:14 ┃ ┗["leader_cat" <leader] 11976 2005-08-16 17:39 ┗["leader_cat" <leader]