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

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

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

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

Eclipse

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

XAMPP

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

Q&A

解決済

1回答

7661閲覧

JSPファイルからMySQLを接続できない

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

Eclipse

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

XAMPP

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

0グッド

0クリップ

投稿2018/04/12 06:20

編集2018/04/12 06:27

前提・実現したいこと

XAMPPとEclipseを開発環境に、JSPを用いて問い合わせフォーム作成を行っています。
Java、HTML、CSS、MySQLを学習した後、スキルアップのために簡易的に作成しているものです。

現在JSPにてMySQLの接続を行っているのですが、うまく接続することができません。

プロジェクト名は「QuiryForm」(誤字してますが無視してください)、DB名は「toiawase」、接続したいテーブル名は「query」です。

発生している問題・エラーメッセージ

HTTPステータス 500 - An exception occurred processing JSP page /input.jsp at line 13 type 例外レポート メッセージ An exception occurred processing JSP page /input.jsp at line 13 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: An exception occurred processing JSP page /input.jsp at line 13 10: <% 11: Context context = new InitialContext(); 12: DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/toiawase"); 13: Connection db = ds.getConnection(); 14: db.close(); 15: %> 16: <!-- Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.git.mm.mysql.Driver' org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845) org.apache.jsp.input_jsp._jspService(input_jsp.java:225) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.git.mm.mysql.Driver' org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) org.apache.jsp.input_jsp._jspService(input_jsp.java:77) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 java.lang.ClassNotFoundException: org.git.mm.mysql.Driver org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420) org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) org.apache.jsp.input_jsp._jspService(input_jsp.java:77) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

該当のソースコード

JSP

1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" 2 import="java.sql.*, javax.naming.*, javax.sql.*" %> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8" /> 7<title>お問い合わせ記入|お問い合わせ|研修課題1.フォームの作成</title> 8</head> 9<body> 10 <% 11 Context context = new InitialContext(); 12 DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/toiawase"); 13 Connection db = ds.getConnection(); 14 db.close(); 15 %> 16</body> 17</html>

試したこと

コードの間違いがないかなど探したのですが、見当たりませんでした。
そのことから予想としてはEclipseやMySQL、XAMPPなどコード以外の問題かと思い、その中でもcontext.xmlが怪しいのではないかと色々と教本を見ながらいじってみたのですが、どれもうまくいきませんでした。

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<!-- 3 Licensed to the Apache Software Foundation (ASF) under one or more 4 contributor license agreements. See the NOTICE file distributed with 5 this work for additional information regarding copyright ownership. 6 The ASF licenses this file to You under the Apache License, Version 2.0 7 (the "License"); you may not use this file except in compliance with 8 the License. You may obtain a copy of the License at 9 10 http://www.apache.org/licenses/LICENSE-2.0 11 12 Unless required by applicable law or agreed to in writing, software 13 distributed under the License is distributed on an "AS IS" BASIS, 14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 See the License for the specific language governing permissions and 16 limitations under the License. 17--><!-- The contents of this file will be loaded for each web application --><Context> 18 19 <!-- Default set of monitored resources --> 20 <WatchedResource>WEB-INF/web.xml</WatchedResource> 21 22 <!-- Uncomment this to disable session persistence across Tomcat restarts --> 23 <!-- 24 <Manager pathname="" /> 25 --> 26 27 <!-- Uncomment this to enable Comet connection tacking (provides events 28 on session expiration as well as webapp lifecycle) --> 29 <!-- 30 <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 31 --> 32 33 <Resource name="jdbc/toiawase" auth="Container" type="javax.sql.DataSource" userName="user1" password="user1" driverClassName="org.git.mm.mysql.Driver" url="jdbc:mysql://localhost/toiawase" maxActive="4" maxWait="5000" maxIdle="2" validationQuery="SELECT count(*) FROM query" /> 34 35</Context>

補足情報(FW/ツールのバージョンなど)

XAMPP 7.2.3 (Apache 2.4.29 MariaDB 10.1.31 Tomcat 7.0)
Eclipse Oxygen
JDK 1.8.0-162
Java 8

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

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

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

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

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

unz.hori

2018/04/12 06:38

スタックトレースを見れば分かると思うんですが...。JDBCドライバがloadできてないですねぇ。org.git.mm.mysql.DriverもClass Not Foundだし...
guest

回答1

0

ベストアンサー

はじめまして

先に回答者様が回答されていますが。。。
一度MySQL対応のJDBCドライバファイルがきちんと設定されているか
確認してみてください。

以前MySQLを使っていたことの導入マニュアルをあげておきます
参考にしてください


【JDBCドライバの設定】
mysql-connector-java-x.x.xx.zipファイルを解凍し、
できた「mysql-connector-java-x.x.xx-bin.jar」をJDKの以下の
フォルダに置く。

JDBCドライバの置き場所
%JAVA_HOME%\jre\lib\extの下

システムの詳細設定画面で追記
set CLASSPATH= %CLASSPATH%;%JAVA_HOME%\jre\lib\ext\mysql-connector-java-x.x.xx-bin.jar

【JDBCドライバの動作確認】
以下のソースを実行する

import java.sql.*; public class JDBCMySQL { public static void main(String[] args) { try { // ドライバクラスをロード // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ODBCの場合 Class.forName("org.gjt.mm.mysql.Driver"); // MySQLの場合 // データベースへ接続 // Connection con = // DriverManager.getConnection("jdbc:odbc:helloworld"); // ODBCの場合 // MySQLの場合 String url = "jdbc:mysql://localhost/test?user=root&password=kawabata&useUnicode=true&characterEncoding=Shift_JIS"; Connection con = DriverManager.getConnection(url); // ステートメントオブジェクトを生成 Statement stmt = con.createStatement(); String sql = "SELECT version()"; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); // 検索された行数分ループ rs.next(); // 言語を取得 String lang = rs.getString("version()"); // 表示 System.out.println(lang); // データベースから切断 stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } }

【コマンドの実行】
コマンドの実行の際、クラスパスを引数にすること。

C:\src\mysql>java -classpath .;C:\mysql-connector-java-2.0.14 JDBCMySQL
3.23.58-max-debug  ←正しくMySQLのバージョンが表示されている。

投稿2018/04/12 07:21

kawakawa2018

総合スコア1195

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

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

退会済みユーザー

退会済みユーザー

2018/04/12 08:01

10年ぐらい前から「 Class.forName」の宣言は自動化されています。 また「org.gjt.mm.mysql.Driver」は MySQL 4向けドライバじゃありませんでしたか
kawakawa2018

2018/04/12 08:06

asahina1979 asahina1979 asahina1979 asahina1979 asahina1979 ご指摘ありがとうございました。 Viridis217様 コメントがありました。お役に立てないようなので削除いたします。
退会済みユーザー

退会済みユーザー

2018/04/12 08:19

やり方は違えど、JDBCドライバが読み込めてないという視点で色々と試してみたら無事接続ができました!! 下記のサイトを参考にさせていただいたのですが、その調べるきっかけを作ってもらえてとても感謝しています! ありがとうございました!! http://www.rsch.tuis.ac.jp/~nagai/SYS/SYS14_new1.html
kawakawa2018

2018/04/12 08:27

Viridis217様 はじめまして 手持ちのPCのブラウザがおかしいので、携帯からの投稿です (字数少なめに!) 解決して良かったですね これからもがんばってください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問