QA@IT

Eclipse上でのJSPクラスのコンパイル

10955 PV

初めまして、今回初めてJSPとSQLを利用したアプリを作っているのですが、困ったことがあったので質問させていただきます。html上で入力した文章からmySQL上に作ったデータベースmydbの中にあるテーブルaomoriを検索して、合致したところにある「timei、lat、lng、extext」のデータを持ってきて,それぞれparamq,paralat,paralng,maintextに代入したいと思っているのですが、うまくコンパイルが出来ず、下記のようなエラーが出てしまいます。

ちなみにOSはwindows10
開発環境はEclipse
Tomcatを使用しています

メッセージ JSPのクラスをコンパイルできません: 

説明 The server encountered an internal error that prevented it from fulfilling this request.

例外
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: 

An error occurred at line: [304] in the generated java file: [U:\Workspacewin\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Aomorium\org\apache\jsp\StreetView_jsp.java]
Syntax error, insert "else Statement" to complete IfStatement

An error occurred at line: [304] in the generated java file: [U:\Workspacewin\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Aomorium\org\apache\jsp\StreetView_jsp.java]
Syntax error, insert "}" to complete Block

An error occurred at line: [321] in the generated java file: [U:\Workspacewin\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Aomorium\org\apache\jsp\StreetView_jsp.java]
Syntax error on token "}", delete this token

An error occurred at line: [322] in the generated java file: [U:\Workspacewin\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Aomorium\org\apache\jsp\StreetView_jsp.java]
Syntax error, insert "}" to complete ClassBody

Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:212)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:457)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:377)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

ソースコードはこんな感じに書きました。

<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<% 
/*qは外部からname="q"として入力*/
String q=request.getParameter("q");
/*paramqは地名。paralat paralng は緯度と経度。maintextは説明文*/
String paramq;
String paralat ;
String paralng ;
String maintext="0";
if(q!=null){
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    String url="jdbc:mysql://localhost/mydb?characterEncoding=UTF-8";
    Connection conn=DriverManager.getConnection(url,"test","pass");

    PreparedStatement stmt=conn.prepareStatement(
            "SELECT * FROM aomori WHERE timei LIKE ? ORDER BY timei");
    stmt.setString(1,q+"%");
    stmt.setMaxRows(1);
    ResultSet rs=stmt.executeQuery();

/*timeiはCHAR(20) lat,lngはVARCHAR(20) maintextはTEXT型*/
    while(rs.next()){
        paramq  = rs.getString("timei");
        paralat = rs.getString("lat");
        paralng = rs.getString("lng");
        maintext = rs.getString("extext");
    }

    rs.close();
    stmt.close();
    conn.close();

%>

回答

Syntax error, insert "}"

単純にifの閉じカッコがないだけじゃ???

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。