2016-07-20 26 views
0

ChromiumのUbuntu 16.04LTSでtomcat8を使用してJSPを実行しているときにこのエラーが発生します。私は、新しいデータベース・スキーマに一致するようにJSP処理中に例外が発生しましたwhileループ

sql = conn.prepareStatement ("SELECT TITLE, VENUE, DETAILS, MAXPERSONS, COSTPERPERSON, DURATION, DATE FROM CEP");

<%= ceps.getString("...") %> lines

を修正するまで、

すべてが細かいを実行していました。

私は何が間違っていたのか理解できません。

この問題を解決できますか?全体的に変更する必要があるものは他にありますか?

JSPページ:ビュー-cep.jsp

<!DOCTYPE html> 
<html> 
    <head> 
     <title>View CEP</title> 
     <%@page import="java.sql.*"%> 
     <%@page import="java.util.*"%> 
     <%Class.forName("com.mysql.jdbc.Driver"); %> 
     <%@page contentType="text/html" pageEncoding="UTF-8"%> 
    </head> 
    <body class="content-wrapper"> 
     <div class="content-page-heading">CEP - Further Action</div> 
     <%! 
      public class Cep { 

       String URL = "jdbc:mysql://localhost:3306/DBName"; 
       String USERNAME = "username"; 
       String PASSWORD = "password"; 

       Connection conn = null; 
       PreparedStatement sql = null; 
       ResultSet res = null; 

       public Cep() { 

        try{ 

         conn = DriverManager.getConnection (URL, USERNAME, PASSWORD); 
         sql = conn.prepareStatement ("SELECT TITLE, VENUE, DETAILS, MAXPERSONS, COSTPERPERSON, DURATION, DATE FROM CEP"); 
        } 
        catch (Exception e) { 

         System.out.println(e); 
        } 
       } 
       public ResultSet getCep() { 

        try { 

         res = sql.executeQuery(); 
        } 
        catch (Exception e) { 

         System.out.println(e); 
        } 
        return res; 
       } 
      } 
     %> 
     <% 
      Cep cep = new Cep(); 
      ResultSet ceps = cep.getCep(); 

      while (ceps.next()) { %> 
      <div class="content-row"> 
       <div class="content-title content-dropDown-point"> 
        <%= ceps.getString("TITLE") %> 
       </div> 
       <div class="content-details content-dropDown"> 
        <hr> 
        <table> 
         <tr> 
          <td>Venue:</td> 
          <td><%= ceps.getString("VENUE") %></td> 
         </tr> 
         <tr> 
          <td>Details:</td> 
          <td><%= ceps.getString("DETAILS") %></td> 
         </tr> 
         <tr> 
          <td>Number of Employees Accepting:</td> 
          <td><%= ceps.getString("MAXPERSONS") %></td> 
         </tr> 
         <tr> 
          <td>Cost per Employee:</td> 
          <td><%= ceps.getString("COSTPERPERSON") %></td> 
         </tr> 
         <tr> 
          <td>Duration:</td> 
          <td><%= ceps.getString("DURATION") %></td> 
         </tr> 
         <tr> 
          <td>Date of Commencement:</td> 
          <td><%= ceps.getString("DATE") %></td> 
         </tr> 
         <tr> 
          <td><button>Submit</button></td> 
         </tr> 
        </table> 
       </div> 
      </div> 
     <% } %> 
    </body> 
</html> 

エラー:例外は58

org.apache.jasper.JasperException: An exception occurred processing JSP page /forms/view-cep.jsp at line 58 

55:    Cep cep = new Cep(); 
56:    ResultSet ceps = cep.getCep(); 
57: 
58:    while (ceps.next()) { %> 
59:    <div class="content-row"> 
60:     <div class="content-title content-dropDown-point"> 
61:      <%= ceps.getString("TITLE") %> 


Stacktrace: 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:578) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
root cause 

java.lang.NullPointerException 
    org.apache.jsp.forms.view_002dcep_jsp._jspService(view_002dcep_jsp.java:174) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

MYSQL DBスキーマ行で処理JSPページ/forms/view-cep.jspを発生しました:

+---------------+---------------+------+-----+---------+-------+ 
| Field   | Type   | Null | Key | Default | Extra | 
+---------------+---------------+------+-----+---------+-------+ 
| TITLE   | varchar(30) | NO |  | NULL |  | 
| VENUE   | varchar(30) | NO |  | NULL |  | 
| DETAILS  | varchar(30) | NO |  | NULL |  | 
| MAXPERSONS | varchar(30) | NO |  | NULL |  | 
| COSTPERPERSON | varchar(30) | NO |  | NULL |  | 
| DURATION  | varchar(30) | NO |  | NULL |  | 
| DATESTART  | varchar(30) | NO |  | NULL |  | 
+---------------+---------------+------+-----+---------+-------+ 

答えて

0

投稿されたスキーマには、DATEという名前の列はありません。繰り返しますが、DATEは予約語です。使用したい場合でも、正しくエスケープする必要があります。

SELECT TITLE, VENUE, DETAILS, MAXPERSONS, COSTPERPERSON, DURATION, DATE <--thsi one 
FROM CEP 

おそらくあなたはDATESTART

SELECT TITLE, VENUE, DETAILS, MAXPERSONS, COSTPERPERSON, DURATION, DATESTART FROM CEP 
を使用することを意味します
関連する問題