質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

2回答

40367閲覧

エクリプスで実行すると「Cannot create JDBC driver of class '' for connect URL〜」となってしまいます。

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿2017/01/14 12:28

編集2017/01/21 11:41

お世話になります。

私は昨年、プログラミング未経験でIT企業に入社し、作年の4月〜7月まで外部の研修会社で研修を受講しておりました。

そこでWEBアプリケーションの開発を学び、簡単なWEBアプリケーションを作成したので、自宅で実行してみたいと思い、研修で使ったソース等をエクリプスに突っ込んで実行ボタンを押したら、コンソールの部分に
Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/test'
と出てしまいました。
このメッセージを訳すと「URL 'jdbc:mysql://localhost:3306/test'に接続するためのJDBC driverを作成できませんでした。」という感じになると思うのですが、どこに原因があるのかわかりません。
どなたか原因や修正すべき点を教えていただけないでしょうか。

https://teratail.com/questions/59928
こちらの質問で教えていただいて、エクリプスのMETA-INF内に作ったcontext.xmlの内容は以下の通りとなっています。

<Context> <Resource name="jdbc/mysql" type="javax.sql.DataSource" className="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" username="root" password="test" /> </Context>

環境は以下の通りです。
OS :MacBook Air(自宅)
Windows(研修先)
サーバー:Tomcat7
DB :MySQL(XAMPP)
JDBC :mysql-connector-java-5.1.35-ga-bin.jar
統合環境:Eclipse neon
DB←→Servret←→JSP

「○○の情報がわからないと答えようが無い」等ありましたらご指摘お願いします。
毎回質問ばかりで恐縮ですが、ぜひ宜しくお願いします。

matobaaさんへ
[1]
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/test'

Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/test'

at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)

at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)

at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

at work.LoginController.doPost(LoginController.java:74)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.sql.SQLException: No suitable driver

at java.sql.DriverManager.getDriver(DriverManager.java:315)

at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)

... 25 more

[2]
おそらく使っていると思いますが、確信がありません。
どこかで確認できますか?

[3]
WebContent¥WEB-INF¥lib 内に配置しています。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matobaa

2017/01/16 01:02

3点教えて下さい。[1]エラー時のスタックトレース [2] JNDIを使っているか否か [3] JDBCドライバをどこに置いているか
tkmtmkt

2017/01/21 12:55

上記[2]に関して、スタックトレースの「at work.LoginController.doPost(LoginController.java:74)」にあるソースコードにDB接続の処理があるはずです。  ※「実行ボタンをおしたら」との説明がありますが、スタックトレースを見るとログイン操作を行って出ているエラーのようです。tomcatの起動に失敗しているわけではないということでよろしいでしょうか。
退会済みユーザー

退会済みユーザー

2017/01/22 03:10

tkmtmktさん はい、tomcatの起動に失敗しているわけではないです。「実行ボタンをおしたら」というのは誤りですね。tkmtmktさんの言う通りログイン操作を行った際にエラーになります。
guest

回答2

0

ベストアンサー

context.xmlのJDBCドライバ指定箇所は以下が正しいのでは?

diff

1 <Context> 2 <Resource 3 name="jdbc/mysql" 4 type="javax.sql.DataSource" 5- className="com.mysql.jdbc.Driver" 6+ driverClassName="com.mysql.jdbc.Driver" 7 url="jdbc:mysql://localhost:3306/test" 8 username="root" 9 password="test"/> 10 </Context>

【参考】

投稿2017/01/22 03:46

tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/01/29 11:28

context.xmlのJDBCドライバ指定箇所を教えていただいたようにしたら、つながるようになりました。 誠にありがとうございました。
guest

0

実行環境のlocalhost(MacBook Air(自宅)のこと)のMySQL設定の問題かとおもいます。

  • 3306番ポートでMySQLが起動しているか
  • MySQLにtestというデータベースが作成されているか
  • testのユーザーがroot、パスワードがtestで設定されているか

以上の3点の確認をしてみてください。

投稿2017/01/16 00:35

shoota

総合スコア246

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/01/21 12:27

回答ありがとうございます。 こちらの返信が遅くなり申し訳ありません。 ・3306番ポートでMySQLが起動しているか ネットワークユーティリティでPortsscanしたところ Open TCP Port: 3306 mysql が表示されたので、3306番ポートでMySQLが起動していることになりますか? ・MySQLにtestというデータベースが作成されているか ・testのユーザーがroot、パスワードがtestで設定されているか この2点を確認しようとphpMyAdminにログインしようとしたら、エラーになってしまいました。 以下表示されていた文言です。 MySQL のメッセージ: 接続できません。設定が無効です。 MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください。 前はphpMyAdminにログインできたのですが、何か変更をしてしまったかもしれません。 このエラーメッセージに従い、xampp¥xampfiles¥phpmyadmin¥config.inc.php¥config.inc.php の中を見たら $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; となっていました。 パスワードのところには'test'が入っていないといけなかったのでしょうか?
tkmtmkt

2017/01/21 12:50

mysqlへの接続に失敗しているのであればスタックトレースに com.mysql.~ が出るような気がします。mysql接続以前にmysqlドライバを見つけられていないのだと思います。
退会済みユーザー

退会済みユーザー

2017/01/22 03:22

tkmtmktさん 回答ありがとうございます。 「mysqlドライバを見つけられていない」ということに関してですが質問欄の追記[3]で書いたようにWebContent¥WEB-INF¥libにmysql-connector-java-5.1.35.bin.jarファイルがあるのですが、これとは別に何か必要なのでしょうか?
tkmtmkt

2017/01/22 03:51

プログラム内でJDBCドライバのクラスを直接指定しているのではなく、設定ファイルに記述したNameを使用している場合、設定ファイルに記述ミスがあればJDBCドライバが正しい位置に置いてあってもプログラムから見つけることができないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問