質問編集履歴

1 誤字修正、DB名等の情報を追加など忘れていたものを記載しました。

退会済みユーザー

退会済みユーザー

2018/04/12 15:27  投稿

JSPファイルからMySQLを接続できない
### 前提・実現したいこと
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
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"
   import="java.sql.*, javax.naming.*, javax.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>お問い合わせ記入|お問い合わせ|研修課題1.フォームの作成</title>
</head>
<body>
   <%
   Context context = new InitialContext();
   DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/toiawase");
   Connection db = ds.getConnection();
   db.close();
   %>
</body>
</html>
```
### 試したこと
コードの間違いがないかなど探したのですが、見当たりませんでした。
そのことから予想としてはEclipseやMySQL、XAMPPなどコード以外の問題かと思い、その中でも**context.xml**が怪しいのではないかと色々と教本を見ながらいじってみたのですが、どれもうまくいきませんでした。
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements. See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License. You may obtain a copy of the License at
     http://www.apache.org/licenses/LICENSE-2.0
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
--><!-- The contents of this file will be loaded for each web application --><Context>
   <!-- Default set of monitored resources -->
   <WatchedResource>WEB-INF/web.xml</WatchedResource>
   <!-- Uncomment this to disable session persistence across Tomcat restarts -->
   <!--
   <Manager pathname="" />
   -->
   <!-- Uncomment this to enable Comet connection tacking (provides events
        on session expiration as well as webapp lifecycle) -->
   <!--
   <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
   -->
   <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" />
</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
  • MySQL

    12078 questions

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

  • Eclipse

    3157 questions

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

  • JSP

    1699 questions

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

  • XAMPP

    1172 questions

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

  • JavaScript

    38578 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Java

    25062 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る