• 締切済み

Java PostgreSQL スクリプトレット

スクリプトレットを使用し、ログイン画面を作成しようと考えています。 <%@ page import="java.io.*,javax.servlet.*,javax.servlet.http.*,java.net.*,java.sql.*" %> <% request.setCharacterEncoding("Shift_JIS"); String id = (String)request.getParameter("id"); String pass = (String)request.getParameter("pass"); String drv = "org.postgresql.Driver"; String dsn = "jdbc:postgresql://localhost:5432/?user=postgres&password=aipo"; String sql = "SELECT * FROM TURBINE_USER"; Connection cn = DriverManager.getConnection(dsn); Statement st = cn.createStatement(); ResultSet rs = st.executeQuery(sql); while (rs.next()) { out.println("<P>" + rs.getString(1) + "</P>"); } rs.close(); st.close(); cn.close(); %> 上記を実行すると org.apache.jasper.JasperException: Exception in JSP: /get.jsp:18 となり、 ResultSet rs = st.executeQuery(sql); の時点でエラーとなります。 Statement st = cn.createStatement(); まで正常に動作するのは確認済みです。 類似する質問に http://oshiete1.goo.ne.jp/qa3522131.html がありましたが、解決できませんでした。 どこが間違っていますでしょうか。

みんなの回答

  • Lieserl
  • ベストアンサー率81% (31/38)
回答No.1

>org.apache.jasper.JasperException: Exception in JSP: /get.jsp:18 の後に続くエラーメッセージがあるはずです。 それを提示して下さい。 スキーマが違っていて、テーブルが見当たらないとかかしら。

ShimantoGa
質問者

お礼

スキーマは現在publicのみです。 以下よりエラーメッセージ(文字数制限の為一部抜粋です)。 org.apache.jasper.JasperException: Exception in JSP: /get.jsp:18 15: out.println("ステートメント作成前"); 16: Statement st = cn.createStatement(); 17: out.println("レコードセット"); 18: ResultSet rs = st.executeQuery(sql); 19: while (rs.next()) { 20: out.println("<P>" + rs.getString(1) + "</P>"); 21: } Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 原因 javax.servlet.ServletException: ERROR: relation "turbine_user" does not exist org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774) org.apache.jsp.get_jsp._jspService(get_jsp.java:93) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

ShimantoGa
質問者

補足

自己解決しました。 Connection cn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/org001", "postgres", "aipo"); 接続文字列の入れ方が間違っていたようです。 でも Statement st = cn.createStatement(); を通った時点で落ちてもよさそうなんですけどね・・・