mysql:11946
From: Tetsuro IKEDA <Tetsuro IKEDA <tetsuro@xxxxxxxxxx>>
Date: Fri, 12 Aug 2005 10:50:08 -0700
Subject: [mysql 11946] Re: JAVA で Mysql にコネクトできません。
池田です。 #J2EEサーバ上のJavaアプリケーションからデータベースに接続する場合、 #一般的には直接データベースへ接続を取得しにいくのではなく、 #J2EEサーバのデータソース機能を使います。 さておき、同じエラー内容でのQ/Aが本家MySQL JDBCフォーラムにありました。 http://forums.mysql.com/read.php?39,22579,22579#msg-22579 上記やりとりを要約すると、 ・必要なのはmysql-connector-java-3.1.10-bin.jarのみ ・aspectjrt.jarは不要 ・このエラーが出てくるのは、Connector/Jのデバッグ用バージョンが 実行時に使用されてしまっているのが原因。 といったところです。 以下のクラスパス等の環境のコピペを見る限りでは、 ・C:\mysql\mysql-connector-java-3.1.10\src; がクラスパスに入っていたりなど、かなり環境設定としては ぐちゃぐちゃになっている気がします。 今回のケース(ServletからDriverManagerを使ってDBにアクセス)では、 単にWEB-INF/libにJDBCドライバのJAR(mysql-connector-java-3.1.10-bin.jar) がコピペされていれば良いはずと思います。 一度綺麗な環境にて試されたほうが良いかもしれません。 leader cat wrote: > JAVAでMysqlにコネクトできません。 > > JAVA(JSP&サーブレット)を始めて2ヶ月足らずの者です。 > > サーブレットでMySqlに接続してテーブルの内容を表示させよ > うとしましたがコネクトで失敗します。 > いろいろと手を尽くしたのですが… > > 【実行結果】 > > HTTPステータス 500 - > > -------------------------------------------------------------------------------- > > type 例外レポート > > メッセージ > > 説明 The server encountered an internal error () that > prevented it from fulfilling this request. > > 例外 > > javax.servlet.ServletException: サーブレットの実行により > 例外を投げました > > > 原因 > > java.lang.NoClassDefFoundError: org/aspectj/lang/Signature > java.lang.Class.forName0(Native Method) > java.lang.Class.forName(Unknown Source) > mysql_access.service(mysql_access.java:24) > > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > -------------------------------------------------------------------------------- > > 【Apacheのログ】 > 2005/08/12 17:24:59 > org.apache.catalina.core.StandardWrapperValve invoke > 致命的: サーブレット mysql_access のServlet.service()が > 例外を投げました > java.lang.NoClassDefFoundError: org/aspectj/lang/Signature > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Unknown Source) > at mysql_access.service(mysql_access.java:24) > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > at java.lang.Thread.run(Unknown Source) > > -------------------------------------------------------------------------------- > > 【環境】 > > MySQL単独で動作確認済 > (PHP開発用サーバとして動作していたもの) > > JAVAサーブレット、JSP等も動作確認済 > (クッキーやセッション管理用の簡単なJSP&サーブレット > は作成済) > > OS Windows2000 Server SP4 > Apache Tomcat 5.5 > MySQL 4.0.24 > > mysql-connector-java-3.1.10 > > [Java] > | > + [aspectj1.5] > | > + [jdk1.5.0_02] > | > + [jre1.5.0_02] > > [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" > にリンク) > > > ・CLASSPATH > .;%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:\mysql\mysql-connector-java-3.1.10\src;C:\Program > Files\Java\aspectj1.5\lib\aspectjrt.jar > > ・JAVA_HOME > C:\Program Files\Java\jdk1.5.0_02 > > ・PATH > %JAVA_HOME%\bin;C:\Program Files\Java\aspectj1.5\bin > > 【mysql_access.javaのソース】 > > import javax.servlet.*; > import javax.servlet.http.*; > import java.io.*; > > import java.util.*; > import java.net.*; > import java.sql.*; > > > // ↓いろいろ入れてみたが結果は同じ > //import org.aspectj.lang.*; > //import org.aspectj.lang.Signature; > // > > public class mysql_access extends HttpServlet > { > public void service(HttpServletRequest request, > HttpServletResponse response) throws IOException, > ServletException > { > > ///* > try { > //ドライバクラスをロード > Class.forName("org.gjt.mm.mysql.Driver"); > // > // Class.forName("com.mysql.jdbc.Driver"); > // Class.forName("com.jdbc.mysql.Driver"); > > // ↓作成当初のもの > // } catch (Exception e) { > // e.printStackTrace(); > // } > > > }catch(ClassNotFoundException e){ > e.printStackTrace(); > } catch(Exception e) { > e.printStackTrace(); > } > > //*/ > > // Webブラウザに画面(HTML)を送信 > PrintWriter out = response.getWriter(); > > out.println("<HTML>"); > > //念の為、metaタグ記載(日本語文字化け防止、キャッシュ > の抑制等) > out.println("<head>"); > //(日本語文字化け防止) > out.println("<meta http-equiv='Content-Type' > content='text/html; charset=Shift_JIS'>"); > //(キャッシュの抑制) > out.println("<meta http-equiv=\'Pragma\' > content=\'no-cache\'>"); > out.println("<meta http-equiv=\'Cache-Control\' > content=\'no-cache\'>"); > out.println("<meta http-equiv=\'Expires\' > content=\'-1\'>"); > out.println("</head>"); > out.println("<BODY>"); > > out.println("<br>"); > > // ↓本当はここへ結果を表示させる > out.println("TEST MySql"); > > out.println("<br>"); > out.println("</BODY></HTML>"); > } > } > > 【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"> > > <display-name>MySql TEST Web > Application(mysql_access)</display-name> > > <servlet> > <servlet-name>mysql_access</servlet-name> > <servlet-class>mysql_access</servlet-class> > </servlet> > > <servlet-mapping> > <servlet-name>mysql_access</servlet-name> > <url-pattern>/mysql_access</url-pattern> > </servlet-mapping> > > </web-app> > > 以上よろしくお願いいたします。m(__)m > > > __________________________________ > Save the earth > http://pr.mail.yahoo.co.jp/ondanka/ > > > -- Tetsuro Ikeda, Intern MySQL Inc, www.mysql.com Office: +1-206-336-2030 Mobile: +1-206-661-4293 Are you MySQL certified? www.mysql.com/certification
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]