• 締切済み

JSPで意味不明のコンパイルエラー

Fedora Core 4 に Tomcat 6 をインストールして、 JSP/Servlet の勉強をはじめた者です。 少し旧い書籍「10日でおぼえる JSP/サーブレット 入門教室」 という書籍の内容を、順にプログラミングしながら実行しています。 今回は、下記のような意味不明のエラーについて質問させてください。 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 6 in the jsp file: /day03-2/p_birth.jsp Syntax error, insert "Finally" to complete TryStatement 3: long diff, lngMin = 366; 4: boolean flag = false; 5: String minName = "", strMsg = ""; 6: //String[] strName = { "掛谷奈美", "望月美奈", "渡辺将人", "松岡徹", "山本晃子" }; 7: String[] strName = { "foo", "bar", "baz" }; 8: int[][] intBirth = { 9: {1975,8,4}, {1950,12,1}, {1964,4,2}, {1968,3,1}, {1932,6,28} }; 上記のメッセージ中のJavaコードは、とあるJSPページに埋め込まれていて、 このメッセージはそのJSPページへIEを使用してアクセスしようとしたときに 表示されるメッセージです。 まず、コメントアウトされている行にエラーを指摘されていることに とまどっています。 次に、例外処理など一切使用していないのに、例外処理に関するエラーを指摘されていまして、訳がわかりません。 ちなみに、このページの文字コードに誤りはありません。↓ <%@ page contentType="text/htl;charset=UTF-8" import="java.util.*" %> どなたか見当がつく方、お助けください。 よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

当時のSDKはV1.3だったと思います。 今のJDKはV1.5ですのでそのため long diffには初期値(=0)が必要なのでは。

  • mtfoggy
  • ベストアンサー率14% (37/255)
回答No.1

>ちなみに、このページの文字コードに誤りはありません。↓ ><%@ page contentType="text/htl;charset=UTF-8" import="java.util.*" %> ↑ 「text/htl」 まちがい。

関連するQ&A

  • JSPのページでの質問

    こんにちは、お世話になります。 JSPのあるページで使った変数名を違うページで使うことができますか? 例えば、トップページでString型の変数 strName を使うとします。リンクを送信ボタンなどを押して、次ページに移動するとします。その移動した後のページで、違う変数として、strName を使うことはできますか? また、その逆?として、複数のページにまたがって、同じ変数を使用することはできますか? 例えば、トップページでstrName に氏名を入れるとします。次ページでstrNameから、その氏名を取り出すことができますか?セッションやBeanを使った方法は本に書いてあったので分かります。それらを使わないとできないのでしょうか? 誰か分かる方がいたら、教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • java コンパイルエラー

    java コンパイルエラー java 初心者です。 簡単なプログラムを作りながら練習していたのですが、Exceptionクラスを継承して新しい例外を作る以下のプログラムで、コンパイルエラーとなり、解決できません。 class NewException extends Exception{ public NewException(){ super("エラー"); } } これを javac でコンパイルすると、 NewException.java:3: シンボルを見つけられません。 シンボル: コンストラクタ Exception(java.lang.String) 場所  : Exception の クラス super("エラー"); ^ エラー1個 と言われます。 これを読むと「Exception には String を引数にとるコンストラクタはないよ」と言われているように思えるのですが、そんなはずないのでは。。 もし原因がお分かりの方がいらしたら、ご教示いただけるとありがたいです。

    • ベストアンサー
    • Java
  • jspのクラスのコンパイルエラー

    jspのクラスのコンパイルエラーが解決出来ず皆様にお力を借りたいと思っています 以前はjdk1.4のtomcat5の動かしていたプログラムを jdk1.7のtomcat7で動かさないといけなくなりました。 実行環境 tomcat7 jdk1.7 エラー内容 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: An error occurred at line: [16] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type AC10101_jsp must implement the inherited abstract method JspSourceDependent.getDependants() An error occurred at line: [22] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type Map is not generic; it cannot be parameterized with arguments <String, Long> An error occurred at line: [25] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved to a variable An error occurred at line: [25] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type HashMap is not generic; it cannot be parameterized with arguments <String, Long> An error occurred at line: [26] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [26] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [27] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [27] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [28] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [28] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [29] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [29] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [30] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [30] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [31] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [31] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [45] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type Map is not generic; it cannot be parameterized with a

  • JSPページから、同じJSPページを呼び出す。

    こんばんは。 少し分からないことがあるのですが。 JSPにフォームを設けて、呼び出し先も おなじJSPにして、処理しようと思ったのですが うまくいきません。 エラーは・・The server encountered an internal error () that prevented it from fulfilling this request. となっています。 おそらく、最初にページを開くときに、 フォームに記載がされていない状態なので、 request.getParameterで受け取るデータが ない、というようなエラーだと思うのですが。 1つのページで処理したいと思っています。 このような場合、どうしたらいいのでしょうか。 なにかアドバイスありましたら、 お願いします。

    • ベストアンサー
    • Java
  • jspでデータベースにレコード追加

    表題のことをしたいのですが、 「HTTPステータス 500 - An exception occurred processing JSP page」という エラー表示がされてしまいます。 名前、会社、住所というテキストボックスに入力して 決定ボタンを押下するとデータベースにレコード追加されるのを 目的としていますが、下記のコードで間違いはありますでしょうか? ----------------------------------------------- <%@ page language="java" %> <%@ page import="java.sql.*"%> <%@ page contentType="text/html; charset=Shift_JIS"%> <% request.setCharacterEncoding("Shift_JIS"); String strName=request.getParameter("name"); String strCompany=request.getParameter("company"); String strAddress=request.getParameter("address"); Class.forName("com.mysql.jdbc.Driver"); String strConn= "jdbc:mysql://localhost/***" + "?user=****&password=****" + "&useUnicode=true&characterEncoding=Shift_JIS"; Connection conn = DriverManager.getConnection(strConn); Statement stmt = conn.createStatement(); String strSql="insert into person (name,company,address) values('"+ strName + "'," + strCompany + "'," + strAddress + ")"; int result= stmt.executeUpdate(strSql); stmt.close(); conn.close(); %> <%//一覧ページにforward%> <jsp:forward page="****.jsp"/> ----------------------------------------------- >int result= stmt.executeUpdate(strSql); の行でエラーが出ているっぽいのですが。。。 TomcatとMySQLを使用しています。 ※環境など情報が不足していましたら、そちらもご指摘ください。  開発勉強中で、まだ理解が足りていない所が多数あります。

    • ベストアンサー
    • Java
  • JSPのエラー画面(error.jsp)に遷移(移動)しない

    フォームを設定したlogin.htmlから情報を受け取るlogin.jspで検証をして、間違ったid番号を入力した場合はerror.jspに移動させたいのですが、遷移せず、「HTTP 500 - 内部サーバー エラー」となります。 改善のご教示お願い致します。 [login.html] <html><head><title>login.html</title></head> <body><h1>ログイン</h1><hr><br> <form method="post" action="/webapp/JSPtest/login.jsp"> <table> <tr> <td>ID:</td> <td><input type="text" name="id"></td> </tr> </table> <br><br> <input type="submit" value="送信"> <input type="reset" value="キャンセル"> </form> </body> </html> [login.jsp] <%@ page contentType="text/html;charset=Shift_JIS" pageEncoding="Shift_JIS" %> <%@ page errorPage="error.jsp" %> <html><head><title>login.jsp</title></head> <body> <% String id = "2007"; String data = request.getParameter("id"); StringBuffer temp = new StringBuffer(); if(!id.equals(data)) temp.append("数値間違い<BR>"); if(temp.length() != 0){ throw new Exception(temp.toString()); } %> <h1>こんにちは<%= data %>様</h1> <h1><%= temp.length() %> </h1> </body></html> [error.jsp] <%@page contentType="text/html;charset=Shift_JIS" pageEncoding="Shift_JIS" %> <%@ page isErrorPage="true" %> <html><head><title>error.jsp</title></head> <body> エラーメッセージ<br> <%= exception.getMessage() %> </body></html>

  • jspでこんなエラーが出ます

    <%@ page contentType="text/html;charset=Windows-31J" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:if test="${param.num le 50}"> クエリ情報numは50以下です </c:if> <c:if test="${param.num gt 50 and param.num le 100}"> クエリ情報numは50より大きく、かつ、100以下です </c:if> <c:if test="${param.num gt 100 and param.num le 500}"> クエリ情報numは100より大きく、かつ、500以下です </c:if> <c:if test="${param.num gt 500}"> クエリ情報numは500より大きいです </c:if> と入力してしるんですが type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: 絶対URI: http://java.sun.com/jsp/jstl/core はweb.xmlとこのアプリケーションを配備したJARファイルのどちらかでも解決できません と言ったエラーが出てしまいます。なにか設定を間違えているのでしょうか?

    • ベストアンサー
    • Java
  • web.xmlでのエラーページ

    お世話になります。 Tomcat5.5、Linux環境下で、 WEB-INF/web.xmlに <error-page> <error-code>500</error-code> <location>/jsp/error.jsp</location> </error-page> <error-page> <error-type>java.lang.Exception</error-type> <location>/jsp/error.jsp</location> </error-page> という記述をしています。 (Tomcatは問題なく起動しています) サーブレット内でエラーが起こるように設定したのですが、作成したerror.jspに飛ばず、通常の500のエラーページが表示されます。 サーブレット記述 doGet(... ) throws ServletException,IOException { ...処理  try { throw new IOException(); //ここでExceptionをわざと起こしています。 ...処理  } catch (Exception e) { e.printStackTrace(); throw new ServletException(e); } なぜ、独自のエラーページに飛んでくれないのか原因が分からず投稿させていただきました。 どなたかアドバイスお願いします。

  • JSP側でBeasを使用するとエラーが!?

    j2sdk1.4.0とtomcat4.1.18を使用しています。 JSP側のファイルMyJSPから自分で作成したクラスMyItemクラスをBeansで呼び出して使用したいのですがtomcatを起動し、Internet Explorerからhttp://localhost:8080/renshu/MyJSPを実行すると、 HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: JSPのクラスをコンパイルできません・・・ というようなエラーがでてしまいます。 MyJSPのファイル側では <%@ page import="MyItem, java.util.*" contentType="text/html; charset=Shift_JIS" %> <jsp:useBean id="item" class="MyItem" />  ・・・ のように宣言しています。 MyJSPのファイル場所は c:\Program Files・・・webapps\renshu\MyJSP.jsp MyItem.javaのファイル場所は c:\Program Files・・・webapps\renshu\web-inf\classes\MyItem.java の場所にそれぞれ置いてあります。 以前tomcat3.3.1を使用していた時は、エラーなく表示されていたのですが、tomcat4.1.18にバージョンアップしたら、エラーが発生してしまいました。ちなみに、tomcat4.1.18にバージョンアップした後でMyItem.javaファイルのコンパイルは通常にできました。なので、環境設定には問題ないと思われます。tomcat4.1.8は新たに追記でBeansを使用する時に何か宣言しなければならないのでしょうか?

    • ベストアンサー
    • Java
  • JSPコンパイルエラー

    JPS作成でコンパイルエラーがおこっています。 考えたのですがどこがわるいのかわかりません。。。 アドバイスお願いいたします <%@page contentType="text/html; charset=Windows-31j"%> <%@page import="java.util.Enumeration"%> <%@ page session="true" %> <html> <head> <H1>画面</H1> </head> <body> <%! Enumeration names=session.getAttributeNames(); %> <% while(names.hasMoreElements()){ %> <%! String kkk=(String)names.nextElement(); %> <% if(kkk!=null){ out.println(kkk+"<br>"); }else{ out.println(""); } } %> </body></html> エラーメッセージ 致命的: サーブレット jsp のServlet.service()が例外を投げました org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: JSPファイル: /B28_HelloWeb_Output.jsp の中の11行目でエラーが発生しました session cannot be resolved 8: </head> 9: <body> 10: <%! 11: Enumeration names=session.getAttributeNames(); 12: %> 13: <% 14: while(names.hasMoreElements()){ Stacktrace: at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93) at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:298) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:277) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:265) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Unknown Source)

    • ベストアンサー
    • Java

専門家に質問してみよう