• ベストアンサー

JSPの表示時エラー

いつもお世話になっております。 ・windows2000 ・j2sdk-1_4_1_07-windows-i586 ・jakarta-tomcat-4.1.31 ・mysql-4.0.25-win32 で開発学習をしています。 頭を抱えている問題は、 サーブレットでデータの絞込み→Beanに格納→JSPでデータの表示 という部分で、実行すると org.apache.jasper.JasperException: タイプ 'hellojava.ConnectBean' のbean中の属性 'Id' の情報を発見できませんでした at org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:650) at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:652) at org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:507)              ・              ・              ・ とエラーがかえってきます。 1)Tomcatに   java.sql.SQLException: After end of result set・・・   と出てきてしまう。 2)HTMLのテキストボックスに英数字のみの入力制限をしていても、データ[Id]がint型なのに対して異なった型で検索もしくは格納しようとしているためにエラー・・・? このようなことが原因かと思い調べているのですが、解決に結びつきません。 いつも申し訳ありませんが、 どなたかご教授願えませんでしょうか。 よろしくお願いいたします。

  • Java
  • 回答数6
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • deadlock
  • ベストアンサー率67% (59/87)
回答No.5

>Tomcatのエラーはなくなりました。 あ、SQLの処理は通るようになったようですね(^^ >bean中の属性 'Id' の情報を発見できませんでした もしかして、<jsp:getPropety name="reqObject" property="Id" /> としていませんか?property="Id"をproperty="id"としてみてください。 BeanでsetFooBar/getFooBarとメソッド定義している場合、 property名はfooBarという風に先頭は小文字にして扱います。 これが違っていたら、今度はJSPでidを表示しようとしている辺りのソースをお願いします。 >if (count == 0) { >catch (Exception e) この2つは、各エラー処理が終わったらreturnしておきましょう。 if文を処理した後や、catch内でErr.jspへのフォワードを終了した後、 その後に記述されている処理(kekka.jspへのフォワード部分)が 実行されてしまっています。 >>リクエストにセットされたConnectBeanは空っぽのまま方っておかれているようですが… >申し訳ございませんが、詳しく説明していただけないでしょうか? #4の補足を見ると、リクエストにセットする処理とDBから値を取り出す処理の 位置が最初と変わっているようなので、ちょっと違っていました。 最後の物だけが出力される状態です。 仕様の是非は決めの問題なので、課題で明示されていなければ問題ないです。 (パフォーマンス上は最初の一件表示の方がいいです。無駄なループがなくなるので)

miammi
質問者

お礼

deadlock様 ご回答本当にありがとうございます。 >property="Id"をproperty="id"としてみてください。 をしたところ・・・ 解決しました!!!本当にうれしいです!! deadlock様にはなんとお礼いっていいのやら、本当に感謝いたします。 >property名はfooBarという風に先頭は小文字にして扱います。 深く考えずにコードを書いていました。本当にご迷惑おかけいたしました。 >>if (count == 0) { >>catch (Exception e) >この2つは、各エラー処理が終わったらreturnしておきましょう。 さっそく修正いたします。 >#4の補足を見ると、リクエストにセットする処理とDBから値を取り出す処理の 位置が最初と変わっているようなので、ちょっと違っていました。 最後の物だけが出力される状態です。 丁寧なご回答ありがとうございました。 一つ一つ丁寧に教えていただき、本当にどうもありがとうございました。 今後ともよろしくお願いいたします。

その他の回答 (5)

回答No.6

Jasperに関しては、以下に過去ログがあります。言うまでもなく、現在、ConnectBean.classは、classesフォルダ内にて、新規に作成したhellojavaフォルダの中に格納されているはず、ですよね? http://oshiete1.goo.ne.jp/kotaeru.php3?q=1495409 以上の内容でもまだ、エラーが出るようでしたら、手当たり次第にデバッグ文を追加しまくって、エラーの切り分けをしていって下さい。具体的には、リクエストパラメータ「txtKensaku」がちゃんと渡ってきているのかどうかとか、はたまた、Beanにプロパティ値の設定を行う前に、sql文より取得したデータ「rs.getInt("ID")」がちゃんとあるのかどうか、など。 それから、プロパティ「Id」の型などが気になるようでしたら、getIntメソッドの引数を、現行のカラム名ではなく、列番号にて指定するようにしてみて下さい。本来は、こちらの方が処理的に早いので、変更しておくことをお勧めします。 それにもかかわらず、やはりバグが何なのか分からないようでしたら、あとはもう、Beanしか残っていませんね。ソースの公開がしにくいようでしたら、以下の過去ログなどを元に、もう一度、ConnectBean.javaの内容を確認してみて下さい。 http://oshiete1.goo.ne.jp/kotaeru.php3?qid=1544044 ゴールはもうすぐですよ、がんばってね~~。

miammi
質問者

お礼

choconamacream様 ご回答ありがとうございます。 >Jasperに関しては、以下に過去ログがあります。 教えていただいた情報を元に、勉強させていただきます。 choconamacream様の励ましうれしかったです。 もっと勉強を頑張っていきたいと思います。 アドバイスありがとうございました。 今後ともよろしくお願いいたします。

  • deadlock
  • ベストアンサー率67% (59/87)
回答No.4

>しかし、同じエラーが発生してしまいます。 同じエラーとは何を指していますか?JSPとSQLがありましたよね? SQLでエラーが発生しているのであれば、JSPは後回しです。 まだSQLExceptionのスタックトレースは見せてもらっていません。 回答者はソースやログを直に見れるわけではないので「エラーが発生した」では分かりません。 ・SQLExceptionのスタックトレース ・修正後のソース全体 ・エラー発生行が提示されたソースのどの箇所にあたるのか この3つをお願いします。 >1.ResultSet#next()を呼んでいない の対処ですが、レコードは複数になるべきものですか? そうでないなら配列にする必要はありません。 >4.リクエストからのBean取り出し の修正をあわせてみた限りでは、リクエストにセットされたConnectBeanは空っぽのまま方っておかれているようですが…

miammi
質問者

補足

deadlock様 お返事どうもありがとうございます。 >回答者はソースやログを直に見れるわけではないので「エラーが発生した」では分かりません。 本当に申し訳ありません・・・。 >・SQLExceptionのスタックトレース Tomcatのエラーはなくなりました。 >・修正後のソース全体 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import hellojava.*; import hellojava.DBConnectionPool; public class RequestServKensaku extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setContentType("text/html; charset=Shift-JIS"); request.setCharacterEncoding("Shift_JIS"); String strId = request.getParameter("txtKensaku"); int intId = (Integer.parseInt(strId)); Integer integer = new Integer(intId); int count = 0; ConnectBean reqObject = new ConnectBean(); ConnectBean record[] = new ConnectBean[10]; int i = 0; //レコードループ用カウント変数 //DB DBConnectionPool pool; Connection con = null; Statement stmt = null; try { pool = DBConnectionPool.getInstance(); con = pool.getConnection(); stmt = con.createStatement(); String sql = "SELECT * FROM kadai_table Where ID = " + integer ; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ count++; } if (count == 0) { out.println("<HTML>"); out.println("<BODY>"); out.println("一致するものがありません"+ "<br>"); out.println("</BODY>"); out.println("</HTML>"); }else{ //reqObject = (ConnectBean)request.getAttribute("reqObject"); rs.beforeFirst(); for(i=0; rs.next(); i++){ reqObject = new ConnectBean(); reqObject.setId(rs.getInt("ID")); reqObject.setName(rs.getString("NAME")); reqObject.setBiko(rs.getString("BIKO")); record[i] = reqObject; } request.setAttribute("reqObject", reqObject); } } catch (Exception e) { request.getRequestDispatcher("Err.jsp").forward(request, response); e.printStackTrace(); } RequestDispatcher rd = request.getRequestDispatcher("/kekka.jsp"); rd.forward(request, response); } } と修正しました。 >・エラー発生行が提示されたソースのどの箇所にあたるのか [HTTP Status 500 -エラー] org.apache.jasper.JasperException: タイプ 'hellojava.ConnectBean' のbean中の属性 'Id' の情報を発見できませんでした すみません、ソースのどの箇所か理解できません・・・ >リクエストにセットされたConnectBeanは空っぽのまま方っておかれているようですが… 申し訳ございませんが、詳しく説明していただけないでしょうか? お手数をおかけしてしまって本当に申し訳ないです。 よろしくお願いいたします。

  • deadlock
  • ベストアンサー率67% (59/87)
回答No.3

> なにかお気づきの点がございましたら いろいろありますが、まずはスタックトレースの見方を勉強しましょう。 エラーが発生したソースと行が表示されているはずです。 1.ResultSet#next()を呼んでいない >ResultSet rs = stmt.executeQuery(sql); >reqObject = (ConnectBean)request.getAttribute("reqObject");   ~略~ >reqObject.setId(rs.getInt("ID")); >reqObject.setName(rs.getString("NAME")); >reqObject.setBiko(rs.getString("BIKO")); ここですが、ResultSet#next()を呼ばないといけないです。 件数に関係なく、rs.getInt()とやった時点でSqlExceptionが発生してしまいます。 一行取得ならif(rs.next()){/* データ取り出し */} 複数のBeanを生成するならwhile(rs.next()){/* データ取り出し */} です。 2.エンコーディング名 名前が違っています。 ×Shift-JIS ○Shift_JIS 3.Exceptionが発生した時 エラー用JSPを作って、そちらにforwardさせましょう。 2のcontent-typeの指定なども、JSP内に移動してください。 4.リクエストからのBean取り出し ConnectBean reqObject = null;  ~略~  reqObject = (ConnectBean)request.getAttribute("reqObject");  if (reqObject == null) { とやっていますが、これは毎回nullです。  ConnectBean reqObject = new ConnectBean();  // DBからの値の取り出し処理  req.setAttribute(~~~~) でいいです。 ほかにもありますがちょっと書ききれないので、 正常時の処理を通すようにしましょう。 上記の部分を1つ直して試してください。

miammi
質問者

補足

deadlock様 ご回答ありがとうございます。 >1.ResultSet#next()を呼んでいない ConnectBean record[] = new ConnectBean[10];  for(i=0; rs.next(); i++){ reqObject = new ConnectBean(); reqObject.setId(rs.getInt("ID")); //out.println(rs.getInt("ID")); reqObject.setName(rs.getString("NAME")); reqObject.setBiko(rs.getString("BIKO")); record[i] = reqObject; } としました。 >2.エンコーディング名 訂正しました。 >3.Exceptionが発生した時 申し訳ございません。調べて実行してみます。 >4.リクエストからのBean取り出し ConnectBean reqObject = new ConnectBean(); request.setAttribute("reqObject", reqObject); としました。 しかし、同じエラーが発生してしまいます。 お手数をおかけして申し訳ございませんが、 ご指摘のほどよろしくお願いいたします。

  • yusukey
  • ベストアンサー率56% (17/30)
回答No.2

いまいちそれぞれの症状の関係がわかりません。 JasperException と SQLException は同時に発生しているのでしょうか?

miammi
質問者

補足

yusukey様 返事が送れて申し訳ありません。 >JasperException と SQLException は同時に発生しているのでしょうか? おそらく同時に発生していると思います。 IDによる検索を行おうとしているのですが、IDを入力し検索ボタンをクリックすると Tomcatに「SQLException」が表示され、かつHTTP Status 500 -で「JasperExceptio」が発生する という状況です。 何かお気づきの点がございましたらご教授願います。 よろしくお願いいたします。

  • deadlock
  • ベストアンサー率67% (59/87)
回答No.1

SQLが間違っているのが原因で例外が発生して、Beanがセットできていないのだと思いますが… >java.sql.SQLException: After end of result set このスタックトレースはどうしました? こっちの方が肝心そうです。メッセージを見る限り、 カーソル(Javaの中ではResultSet, RowSetなどの形で扱います)が 最後の行まで来ているのに無理に処理をしているのではないかと思いますが。 SQLを発行して処理する部分のソースと、発行したSQLそのものが欲しいです。 >データ[Id]がint型なのに対して異なった型で検索もしくは格納しようとしている Idが何者か、どう扱っているのか分からないとなんともいえないですね… 英数字じゃBeanのintには格納できないでしょうし、それが原因でSQLでエラーが発生しているのかもしれないです。 SQLの検索条件部分がId=nullになっていて0件 →検索結果をチェックせずにResultSet#getInt()等を呼び出して例外発生 なんてのもありそうです。 とりあえず、上記の通り発行しているSQLとその周りのコードがあれば切り分けができます。

miammi
質問者

補足

deadlock様 返事が送れて申し訳ありませんでした。 >SQLを発行して処理する部分のソースと、発行したSQLそのものが欲しいです。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import hellojava.*;→(Beanを格納しているフォルダ) import hellojava.DBConnectionPool;→(DBに接続をプールしているもの) public class RequestServKensaku extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setContentType("text/html; charset=Shift-JIS"); request.setCharacterEncoding("Shift-JIS"); String strId = request.getParameter("txtKensaku"); int intId = (Integer.parseInt(strId)); ConnectBean reqObject = null; DBConnectionPool pool; Connection con = null; Statement stmt = null; try { pool = DBConnectionPool.getInstance(); con = pool.getConnection(); stmt = con.createStatement(); String sql = "SELECT * FROM kadai_table Where ID = " + intId ; ResultSet rs = stmt.executeQuery(sql); reqObject = (ConnectBean)request.getAttribute("reqObject"); if (reqObject == null) { reqObject = new ConnectBean(); request.setAttribute("reqObject", reqObject); } reqObject.setId(rs.getInt("ID")); reqObject.setName(rs.getString("NAME")); reqObject.setBiko(rs.getString("BIKO")); } catch (Exception e) { out.println("<HTML>"); out.println("<BODY>"); out.println("エラー"+ "<br>"); out.println("</BODY>"); out.println("</HTML>"); e.printStackTrace(); } RequestDispatcher rd = request.getRequestDispatcher("/kekka.jsp"); rd.forward(request, response); } } と書いています。 なにかお気づきの点がございましたらご教授ください。 よろしくお願いいたします。

関連するQ&A

  • JSPのエラーコード

    以下のエラーコード・・・何が原因なのでしょうか? 色々検索してみましたがわかりません。 よろしくお願いします。 【ブラウザの表示】 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: /view/sample.jsp(9,0) The value for the useBean class attribute bean.DBsample is invalid. org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148) org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1204) org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222) org.apache.jasper.compiler.Node$Root.accept(Node.java:457) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) org.apache.jasper.compiler.Generator.generate(Generator.java:3384) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:207) org.apache.jasper.compiler.Compiler.compile(Compiler.java:326) org.apache.jasper.compiler.Compiler.compile(Compiler.java:307) org.apache.jasper.compiler.Compiler.compile(Compiler.java:295) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:565) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

  • jsp:useBean の使い方???

    こんにちは。よろしくお願いします。 【環境】 jdk1.5.0_15 tomcat5.0 【参考書】 「はじめてのJSP&サーブレットプログラミング」(秀和システム) 上記参考書にあるサンプルソースをそのまま実行しているつもりが、エラーになってしまい困っています。 【JSPエラーの内容 ----------↓ここから↓----------】 org.apache.jasper.JasperException: /jsp/mailSend.jsp(3,0) org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150) org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1227) org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) org.apache.jasper.compiler.Node$Root.accept(Node.java:456) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) org.apache.jasper.compiler.Generator.generate(Generator.java:3272) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244) org.apache.jasper.compiler.Compiler.compile(Compiler.java:470) org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 【JSPエラーの内容 ----------↑ここまで↑----------】 自分では、 エラーの内容 org.apache.jasper.JasperException: /jsp/mailSend.jsp(3,0) からmailSend.jspの3行目 <jsp:useBean id = "mail" scope = "page" class = "jspbean.MailSendBean"> が問題なのかなと思っていますが、 mailSend.jspの記述が問題なのかMailSendBean.javaの記述が問題なのかどちらがエラーの原因なのかも分かりません。 MailSendBean.classはコンパイルも通って WEB-INF/classes/jspbean/MailSendBean.classに存在しています。 workフォルダの下の階層にはmailSend.jspのjavaファイルもclassファイルも出来ていません。 出来るだけ多くの情報をと思い長くなりましたが、 何かお気づきの方アドバイスよろしくお願い致します。 また、足りない情報などありましたらご指摘よろしくお願いします。

  • JSP jsp:usebean で総称型クラスを使うには

    お世話になります。 JSPでプログラムを書いています。 そこでjsp:usebeanを使っているのですが、そのクラスに以下のように総称型クラスを使用したいのです。 > <%@page import="java.util.Vector"%> > <jsp:useBean id="vec" scope="application" class="java.util.Vector<String>"/> で、warファイルまではできるのですが、実行するとブラウザ上に以下のようなエラーが表示されます。 > org.apache.jasper.JasperException: /index.jsp(4,0) useBeanのクラス属性 java.util.Vector<String> の値が無効です > org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) > org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) > org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148) > org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1178) JSPのbeanには総称型クラスを使うことができないのでしょうか。 環境は以下の通りです。 サーバー:Tomcat 5.5.27 jdk: 1.6.0_07 特別なコンパイルオプションなどは指定していません。 よろしくお願いいたします。

    • ベストアンサー
    • 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
  • JasperExceptionのエラーログの見方について

    Servletでリクエストを受付け、Javabean経由でDBの内容を取得しJSPで表示させようとしていますが、以下例外が発生しJSPがコンパイルできていないようです。エラーログをどう見ればよいかご教示いただけないでしょうか。 2006-08-27 17:14:11 ApplicationDispatcher[/testtomcat] サーブレット jsp のServlet.service()が例外を投げました org.apache.jasper.JasperException: /Sample5.jsp(5,0) at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150) at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1227) at org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116) ~略~ at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) at Sample5.doGet(Sample5.java:23) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) ~略~

  • jspプログラムについて

    下のJSPプログラムがうまく起動されません。どこか問題があるのでしょうか?<os>vista<apatch>2.2<java>jdk1.6.0_12<tomcat>5.5で実行しております。 <jsp> <html><body> <%@ page content type="text/html;charset=Shift_JIS" %> <% string[] results=null; try{ string inDs = request.getparameter("DS"); string inTb1 = request.getparameter("TEL"); string inKey = request.getparameter("KEY"); se.dbmag.AccessDbBybean my_bean = new se.dbmag.AccessDbbybean(); my_bean.setDs(inDs); my_bean.setTb1(inTb1); my_bean.setKey(inKey); my_bean.execute(); results = my_bean.getResults(); out.println("<br>社員を検索します"); out.println("<br>検索対象の社員番号は "+inKey" です"); try{ for(int i=0; i<2147483647; i++) { out.println("<br>"+results[i]); } }catch(ArrayIndexOutOfBoundsException e)() out.println"<br>検索が終了しました"); }catch(Exception e){ e.printStackTrace(); } %> </body></html> <エラー内容> org.apache.jasper.JasperException: /AccessDbJspByBean.jsp(2,17) 等号記号が必要です org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88) org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:199) org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:149) org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:162) org.apache.jasper.compiler.ParserController.getPageEncodingForJspSyntax(ParserController.java:435) org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:378) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:170) org.apache.jasper.compiler.ParserController.parse(ParserController.java:101) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:156) org.apache.jasper.compiler.Compiler.compile(Compiler.java:296) org.apache.jasper.compiler.Compiler.compile(Compiler.java:277) org.apache.jasper.compiler.Compiler.compile(Compiler.java:265) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302) 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) よろしくお願いします

  • Eclipse + jsp +tomcatのエラー

    jspのプログラミングをしていて、以下のようなエラーがでて困っています。 以前に作った他のプログラムは特に問題ないのですが、今テストしてるものだけエラーがでます。 ソースは書籍のメディアからコピーしてきたのでコーディングミスはないと思います。 書籍のサイトをみても正誤情報はありませんでした。 私自身、あまりJavaに詳しくないのでどなたかアドバイスをいただけると助かります。 よろしくお願いします。 環境  Eclipse Version: Indigo Service Release 2 (pleiades-e3.7) tomcat 7.0.27 java jdk1.6.0_25 ------------------------------------------------------------------------- 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: An error occurred at line: 211 in the generated java file Syntax error, insert "}" to complete Block An error occurred at line: 221 in the generated java file Syntax error on token "}", delete this token An error occurred at line: 222 in the generated java file Syntax error, insert "}" to complete ClassBody Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469) org.apache.jasper.compiler.Compiler.compile(Compiler.java:378) org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) ブラウザの更新ボタンを押したりすると以下のようなメッセージに変わったりします。 ---------------------------------------------------------------------------------- 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.expense.list_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 原因 java.lang.ClassNotFoundException: org.apache.jsp.expense.list_jsp java.net.URLClassLoader$1.run(URLClassLoader.java:202) java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:190) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

  • JSP コンパイルエラー

    こんにちは  JSPのコンパイルエラーで悩まされていて質問させていただきました <% if(request.getAttribute("list")!=null){ List list=(List)request.getAttribute("list"); List list1=(List)request.getAttribute("list1"); List list2=(List)request.getAttribute("list2"); for(int i=0; i<list.size(); i++){ out.print(list.get(i)+" "); out.print(list1.get(i)+" "); out.println(list2.get(i)); %><br> ↑これだとコンパイルが成功します <% if(request.getAttribute("list") || request.getAttribute("list1") || request.getAttribute("list2")!=null){ List list=(List)request.getAttribute("list"); List list1=(List)request.getAttribute("list1"); List list2=(List)request.getAttribute("list2"); for(int i=0; i<list.size(); i++){ out.print(list.get(i)+" "); out.print(list1.get(i)+" "); out.println(list2.get(i)); %><br> これだとエラーが発生します・・・ 条件を増やしただけなんですが、何か構文がまちがっているのでしょうか?? アドバイスお願いします SPファイル: /****jsp の中の36行目でエラーが発生しました The operator || is undefined for the argument type(s) java.lang.Object, java.lang.Object 33: <Hr> 34: 35: <% 36: if(request.getAttribute("list") || request.getAttribute("list1") || request.getAttribute("list2")!=null){ 37: List list=(List)request.getAttribute("list"); 38: List list1=(List)request.getAttribute("list1"); 39: List list2=(List)request.getAttribute("list2"); 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
  • HTTP Status 500 のエラー

    windows2000+Tomcat 4.1です。 index.htmからのサンプルは見ることが出来るのですが・・・ 試しに自分で作ったものをテストしてみたところ次のような エラーがブラウザにでます。 Tomcatの設定が悪いのでしょうか?(Tomcatの再起動はしました) よろしくお願いします。 <エラー> 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/test.jsp(0,38) jsp.error.attribute.noequal at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:417) at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:126)                    ・・・以下省略 <ソース> <%@ page language ="java" contentType "text/html;charset=Shift_JIS" %> <HTML> <HEAD> <TITLE>テスト<TITLE> </HEAD> <BODY> ~ ~ ~ </BODY> </HTML>

    • ベストアンサー
    • Java
  • Tomcatのエラーで質問です

    FreeBSD 6.2-RELEASEにTomcat5.5,Apache2をインストールし、 mod_jkの設定まで完了して、JSPを実行しましたが、 下記エラーがでてしまいます。 ご存知の方がおられましたら、是非ご教授ください。 よろしくお願いいたします。 java.io.FileNotFoundException: /usr/local/tomcat5.5/work/Catalina/localhost/jsp-examples/org/apache/jsp/test3_jsp.java (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:179) at java.io.FileOutputStream.<init>(FileOutputStream.java:70) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:141) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:296) 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:803) 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:174) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) 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:151) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:595) Nov 11, 2007 7:32:07 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet jsp threw exception java.io.FileNotFoundException: /usr/local/tomcat5.5/work/Catalina/localhost/jsp-examples/org/apache/jsp/test3_jsp.java (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:179)

専門家に質問してみよう