- PR -

JavaからMySQLにつながりません。

投稿者投稿内容
Sparrow
会議室デビュー日: 2006/08/25
投稿数: 9
投稿日時: 2006-08-25 21:33
このようなエラーがでてつながりません。

javax.servlet.ServletException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.insert_jsp._jspService(insert_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

原因

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
org.apache.jsp.insert_jsp._jspService(insert_jsp.java:57)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

なおNetBeans5.0で学習しております。「10日でおぼえるJSP/サーブレット」5日目一時間目です。
ご指導の程よろしくお願いします。
ドライバーはライブラリに登録しています。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-25 23:54
引用:

ドライバーはライブラリに登録しています。



作成しているWEBアプリケーションのデプロイしたディレクトリ内のWEB-INF/lib
にMySQLのライブラリJARファイルは設置しているということですかね?。
MySQLでは無いのですが、昔PostgreSQLでDBCPを介してJDBCドライバを使った際、
同じような目に遭いました。Tomcatのインストールディレクトリ内の
/common/lib/ にJDBCドライバを設置すると動作しませんかね?。

10日でおぼえるJSP/サーブレットという本に、そのあたりの設定が載ってそうな
感じもするのですが・・・。

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-08-26 01:53
ネイティブ実装のJDBCドライバではない限り、
通常はWEB-INF/libにjarファイルを配置しても問題ありません。
WEB-INF/libに配置した場合、jarに含まれるクラスを
直接コードで触る場合以外はクラスパスを通す必要もありません。
(ネイティブ実装の場合はリロードで怒られますので、common/libに配置するのがいいと思います。・・・)

ライブラリに登録したというニュアンスでは、
何をどうやったのか判りかねますので、
できれば、どのディレクトリに配置したか、
クラスパス云々は設定した、していないなどの情報が欲しいです。
Sparrow
会議室デビュー日: 2006/08/25
投稿数: 9
投稿日時: 2006-08-26 06:49
みなさんありがとうございます。
ライブラリに登録したというのは、NetBeansのプロジェクトのライブラリフォルダです。
ライブラリフォルダに登録すればNetBeansが自動で処理をしてくれます。

小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-26 13:57
NetBeansの設定は存じ上げないのですが、Tomcatにコネクションプーリング
(データベースとの接続をずっと繋げっぱなしにしてくれる機能)を任せる
場合は、Tomcat5.5のドキュメントの該当部分に
http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
引用:

1. Install Your JDBC Driver

Use of the JDBC Data Sources JNDI Resource Factory requires that you make an appropriate JDBC driver available to both Tomcat internal classes and to your web application. This is most easily accomplished by installing the driver's JAR file(s) into the $CATALINA_HOME/common/lib directory, which makes the driver available both to the resource factory and to your application.



とあるので、やはりTomcatインストールディレクトリの下の
/commn/lib
にJDBCドライバを設置する必要があるみたいですよ。

あ、バージョン違いですがNetBeans4.1用の解説がありましたよ。
http://www.netbeans.org/kb/41/using-netbeans/dbconn_ja.html
引用:

データベースドライバを IDE から使用できるようにしても、Web アプリケーションからそのドライバを使用できるわけではないことに注意してください。つまり、IDE を使用してデータベースにアクセスし、変更することはできますが、Web アプリケーションからデータベースにアクセスして変更することは、まだできません。これが行えるようにするには、データベースドライバの JAR ファイルを Web アプリケーションの WEB-INF/lib フォルダ (Tomcat 接続プール機能の場合は、Tomcat の common/lib フォルダ) に追加する必要があります 。



動くといいんですが、ご参考まで。


[ メッセージ編集済み 編集者: 小僧 編集日時 2006-08-26 14:01 ]
Sparrow
会議室デビュー日: 2006/08/25
投稿数: 9
投稿日時: 2006-08-26 14:01
つながりました。ありがとうございました。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-08-26 22:55
すいません。どうやったらうまくいったんですか?
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-27 00:48
動作して何よりなのですが・・・。
はじめの質問の書き込みには突っ込まなかったのですが、あなたの質問
は、同じ会社の顔なじみの先輩に質問しているような内容で、非常に答
えるのが面倒くさい質問ですよ。
NetBeansのバージョン以外に、OS、Tomcat、JDK、MySQL用JDBCドライバ
など、お使いの開発環境に関する情報を先に書かないと、マンツーマンで
新人教育しているわけでもないですから、トラブルの情報量が足らなさ過
ぎます。次回からは、人に物事を伝えることを考えながら質問をしてくだ
さい。

引用:

Sparrowさんの書き込み (2006-08-26 14:01) より:
つながりました。ありがとうございました。



Kazukiさんも書き込まれていますが、こういった掲示板で大事なことは、
上手くできた場合は、具体的にどうやったら動作したなどの情報を最後に
書いて締めることです。そうすれば、同様の問題で困っている人が参照
する情報が増えることになり、間接的ににSparrowさんも後進に回答した
ことになるのですよ。ですから動作結果をまとめて、この質問を締めて
ください。




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