※ ChatGPTを利用し、要約された質問です(原文:jspのエラー)
jspのエラーでデータベースに接続できません
このQ&Aのポイント
jspのエラーが発生し、データベースに接続できません。エラーメッセージは"org.apache.jasper.JasperException: Exception in JSP: /gomitable1.jsp:12"です。
エラーの原因は、javax.servlet.ServletException: Error during query: Unexpected Exception: java.io.CharConversionException message given: nullです。
このエラーメッセージの意味がわからず、問題の解決方法が分かりません。なにが悪いのか教えてください。
<%@ page contentType="text/html; charset=UTF-8" import="java.io.*, java.sql.*" %>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/database1?user=user1&password=password1&useUnicode=true&characterEncoding=UTF-8");
Statement stmt=con.createStatement();
ResultSet result=stmt.executeQuery("select * from table1;");
%>
<table>
<tr>
<th>country</th>
<th>city</th>
</tr>
<%
while(result.next())
{
%>
<tr>
<td> <%= result.getString(1) %></td>
<td> <%= result.getString(2) %></td>
</tr>
<%
}
stmt.close();
con.close();
%>
</table>
でエラーがでてデータベースに接続できません
メッセージは以下の通りです
org.apache.jasper.JasperException: Exception in JSP: /gomitable1.jsp:12
11: Class.forName("com.mysql.jdbc.Driver");
12: Connection con=DriverManager.getConnection("jdbc:mysql://localhost/database1?user=user1&password=password1&useUnicode=true&characterEncoding=UTF-8");
13: Statement stmt=con.createStatement();
14: ResultSet result=stmt.executeQuery("select * from table1;");
15: %>
原因
javax.servlet.ServletException: Error during query: Unexpected Exception: java.io.CharConversionException message given: null
このメッセージの意味もわかりません
何が悪いのでしょうか?
お礼
なお以下のJavaアプリは動作しています import java.sql.*; public class HelloWorldJDBCMySQL { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost/database1?user=user1&password=password1&useUnicode=true&characterEncoding=UTF-8"; Connection con=DriverManager.getConnection(url); Statement stmt=con.createStatement(); String sql="SELECT * FROM table1"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) { System.out.println(rs.getString(1)+" "+rs.getString(2)); } stmt.close(); con.close(); } }
補足
ありがとうございます やってみましたがエラーメッセージが次のように変わりました よろしくおねがいします org.apache.jasper.JasperException: Exception in JSP: /gomitable1.jsp:12 11: //Class.forName("com.mysql.jdbc.Driver"); 12: Class.forName("org.gjt.mm.mysql.jdbc.Driver"); 13: Connection con=DriverManager.getConnection("jdbc:mysql://localhost/database1?user=user1&password=password1&useUnicode=true&characterEncoding=UTF-8"); 14: Statement stmt=con.createStatement(); 15: ResultSet result=stmt.executeQuery("select * from gomitable;"); Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(jasper5-compiler-5.5.15.jar.so) org.apache.jasper.servlet.JspServletWrapper.service(jasper5-compiler-5.5.15.jar.so) org.apache.jasper.servlet.JspServlet.serviceJspFile(jasper5-compiler-5.5.15.jar.so) org.apache.jasper.servlet.JspServlet.service(jasper5-compiler-5.5.15.jar.so) javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.15.jar.so) 原因 javax.servlet.ServletException: org.gjt.mm.mysql.jdbc.Driver org.apache.jasper.runtime.PageContextImpl.doHandlePageException(jasper5-runtime-5.5.15.jar.so) org.apache.jasper.runtime.PageContextImpl.handlePageException(jasper5-runtime-5.5.15.jar.so) org.apache.jsp.gomitable1_jsp._jspService(org.apache.jsp.gomitable1_jsp:103) org.apache.jasper.runtime.HttpJspBase.service(jasper5-runtime-5.5.15.jar.so) javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.15.jar.so) org.apache.jasper.servlet.JspServletWrapper.service(jasper5-compiler-5.5.15.jar.so) org.apache.jasper.servlet.JspServlet.serviceJspFile(jasper5-compiler-5.5.15.jar.so) org.apache.jasper.servlet.JspServlet.service(jasper5-compiler-5.5.15.jar.so) javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.15.jar.so)