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

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

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

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

1242閲覧

SQLの管理用ページの作成のプログラムが内部Webブラウザで実行表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/07/06 07:55

前提・実現したいこと

参考書Eclipse4.7でJAVAプログラミングを勉強しています。
7.2「JSP/サーブレットからのJDBCの利用」の章にある
SQLの管理用ページの作成のプログラム「list7.1_admin.jsp」が内部Webブラウザで実行表示されません。
実行中に以下のエラーメッセージが発生しました。
よろしくお願いいたします。

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

情報: Server version: Apache Tomcat/9.0.8 [金 7 06 16:21:22 JST 2018] 情報: Server built: Apr 27 2018 19:32:00 UTC [金 7 06 16:21:22 JST 2018] 情報: Server number: 9.0.8.0 [金 7 06 16:21:22 JST 2018] 情報: OS Name: Windows 10 [金 7 06 16:21:22 JST 2018] 情報: OS Version: 10.0 [金 7 06 16:21:22 JST 2018] 情報: Architecture: amd64 [金 7 06 16:21:22 JST 2018] 情報: Java Home: C:\pleiades\eclipse\jre\jre [金 7 06 16:21:22 JST 2018] 情報: JVM Version: 1.8.0_162-b12 [金 7 06 16:21:22 JST 2018] 情報: JVM Vendor: Oracle Corporation [金 7 06 16:21:22 JST 2018] 情報: CATALINA_BASE: C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0 [金 7 06 16:21:22 JST 2018] 情報: CATALINA_HOME: C:\Program Files\Apache Software Foundation\Tomcat9.0.8 [金 7 06 16:21:22 JST 2018] 情報: Command line argument: -Dcatalina.base=C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0 [金 7 06 16:21:22 JST 2018] 情報: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat9.0.8 [金 7 06 16:21:22 JST 2018] 情報: Command line argument: -Dwtp.deploy=C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps [金 7 06 16:21:22 JST 2018] 情報: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat9.0.8\endorsed [金 7 06 16:21:22 JST 2018] 情報: Command line argument: -Dfile.encoding=UTF-8 [金 7 06 16:21:22 JST 2018] 情報: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\pleiades\eclipse\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/pleiades/eclipse/jre/bin/../jre/bin/server;C:/pleiades/eclipse/jre/bin/../jre/bin;C:/pleiades/eclipse/jre/bin/../jre/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;%JAVA_HOME%bin;C:\Program Files\MySQL\MySQL Workbench 8.0 CE;C:\WINDOWS\System32\OpenSSH\;%CATALINA_HOME%\bin;C:\Program Files\MySQL\MySQL Router 8.0\bin;C:\Users\Owner\AppData\Local\Microsoft\WindowsApps;;C:\pleiades\eclipse;;.] [金 7 06 16:21:22 JST 2018] 情報: Initializing ProtocolHandler ["http-nio-8080"] [金 7 06 16:21:22 JST 2018] 情報: Using a shared selector for servlet write/read [金 7 06 16:21:22 JST 2018] 情報: Initializing ProtocolHandler ["ajp-nio-8009"] [金 7 06 16:21:22 JST 2018] 情報: Using a shared selector for servlet write/read [金 7 06 16:21:22 JST 2018] 情報: Initialization processed in 811 ms [金 7 06 16:21:22 JST 2018] 情報: サービス [Catalina] を起動します [金 7 06 16:21:22 JST 2018] 情報: Starting Servlet Engine: Apache Tomcat/9.0.8 [金 7 06 16:21:22 JST 2018] 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. [金 7 06 16:21:28 JST 2018] 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. [金 7 06 16:21:32 JST 2018] 情報: Starting ProtocolHandler ["http-nio-8080"] [金 7 06 16:21:32 JST 2018] 情報: Starting ProtocolHandler ["ajp-nio-8009"] [金 7 06 16:21:32 JST 2018] 情報: Server startup in 10455 ms [金 7 06 16:21:32 JST 2018] 重大: Servlet.service() for servlet [jsp] in context with path [/SampleSQL] threw exception [An exception occurred processing [/list7.1_admin.jsp] at line [6] 3: 4: <%@ page import="java.sql.*" %> 5: <% 6: Class.forName("com.mysql.jdbc.Driver"); 7: Connection users = DriverManager.getConnection("jdbc:mysql://localhost/MyServlet_DB","root","各自のパスワードを指定"); 8: Statement state = users.createStatement(); 9: ResultSet result = state.executeQuery("select * from Users"); Stacktrace:] with root cause [金 7 06 16:21:34 JST 2018]

該当のソースコード list7.1_admin.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver"); Connection users = DriverManager.getConnection("jdbc:mysql://localhost/MyServlet_DB","root","各自のパスワードを指定"); Statement state = users.createStatement(); ResultSet result = state.executeQuery("select * from Users"); String html = "<table border=\"1\">"; html +="<tr><td>ID</td><td>パスワード</td></tr>"; while(result.next()){ String id = result.getString("id"); String pass = result.getString("password"); html += "<tr><td>" + id +"</td>"; html += "<td>" + pass + "</td></tr>"; } html += "</table>"; result.close(); state.close(); users.close(); %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Database Access</title> <style> h1{font-size: 14pt; font-weight:bold;background-color:#DDF;padding:3px;} </style> </head> <body> <h1>Myデータベースにアクセス</h1> <h2>データの一覧</h2> <%= html %> <hr> <h2>ユーザの追加</h2> <form action = "./AddUser" method="post"> <table> <tr><td>ログインID</td><td><input type = "text" name ="id"></td></tr> <tr><td>パスワード</td><td><input type="password" name="pass"></td></tr> <tr><td></td><td><input type="submit" value ="送信"></td></tr> </table></form> <hr> <h2>ユーザの削除</h2> <form action="./DelUser" method="post"> <table> <tr><td>ログインID</td><td><input type="text" name="id"></td></tr> <tr><td></td><td><input type="submit" value="送信"></td></tr> </table> </form> </body> </html>

試したこと

6行目あたりで例外が発生しているみたいですが、英語が苦手のためおてあげです。
7行目「各自のパスワードを指定」に実際のパスワードを打ち込んでみましたが、変わりませんでした。

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

動的web プロジェクト
ターゲット・ランタイム Apache Tomcat9.0.8
動的webモジュールバージョン 3.0
構成   Apache Tomcat v9.0.8デフォルト構成

Java
デフォルト出力フォルダー    build\classes

webモジュール
コンテキスト・ルート  SampleSQL
コンテンツ・ディレクトリ WebContent\SampleSQL
web.xmlディプロイメント記述子の生成 off

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

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

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

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

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

guest

回答3

0

6行目あたりで例外が発生しているみたいですが、英語が苦手のためおてあげです。

7行目「各自のパスワードを指定」に実際のパスワードを打ち込んでみましたが、変わりませんでした。

6行目で例外が発生しているということは、7行目は実行されていないわけですから、7行目をいじって解決はできません。

6行目で例外が発生しているということは、ログから

txt

1重大: Servlet.service() for servlet [jsp] in context with path [/SampleSQL] threw exception [An exception occurred processing [/list7.1_admin.jsp] at line [6]

でわかりますね。

でもここにはただ「例外が発生した」という事実しかわかりません。
これをより具体的な情報を得るためには、「どんな例外」なのかを特定する必要があります。

これを特定するためには、try ~ catch で詳細なエラーを捕捉する必要があります。

java

1try { 2 Class.forName("com.mysql.jdbc.Driver"); 3 Connection users = DriverManager.getConnection("jdbc:mysql://localhost/MyServlet_DB","root","各自のパスワードを指定"); 4 Statement state = users.createStatement(); 5} catch (Exception e) { 6 e.printStackTrace(); 7}

このように使うことで、より詳細なメッセージがわかります。

投稿2018/07/06 08:08

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/07/06 08:42

初めてEclipseで勉強しているので、ご指導していただいた事が理解できません。 もうすこししらべてみます。
guest

0

6行目のエラーで7行目を直してもあまり…

英語も何もエラーになったとしか書いてないので、Class.forName("com.mysql.jdbc.Driver") エラーで探してみたらどうでしょう?

単純にパスが取れないとかでドライバがロードできてないのでは?

投稿2018/07/06 08:02

papinianus

総合スコア12705

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

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

退会済みユーザー

退会済みユーザー

2018/07/06 08:43

プロジェクトのプロパティを開いて、Javaのビルド・パスの ライブラリーにJDBCのjar を追加してみたのですがうまくいきません。
guest

0

ベストアンサー

mysql-connector-java5.1.46.jar を
WEB-INF/lib フォルダに配置すればMySQLに接続できる。

投稿2018/07/06 08:57

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問