• ベストアンサー

フォーワードでのjava.lang.IndexOutOfBoundsExceptionエラー

サーブレットの request.getRequestDispatcher("/data.jsp").forward(request,response); の部分で以下のエラーがでます。 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 org.apache.jasper.JasperException: Index: 0, Size: 0 許容を超えてリクエストに値が入ってしまっているようなのですが、 これは、どういった場合おこりえるのでしょうか。 分かる方がいましたら、教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 これは、配列などへのアクセス時に指定したインデックス(配列の添え字など)が範囲外であるという例外です。 この場合は空の配列の1番目の要素にアクセスしようとしたようです。 > org.apache.jasper.JasperException: Index: 0, Size: 0 これは、JSPの処理全般の例外です。 したがって、サーブレットの「request.getRequestDispatcher("/data.jsp").forward(request,response);」というよりは data.jsp で起きたと言えるでしょう。もしくは data.jsp から読み込まれたり、Forwardされたりしたところかも知れません。 さしあたり、data.jsp の中で配列の処理をしているところが無いか確認すると良いかと。

qqtaka
質問者

お礼

お返事遅れてすみません。 アドバイスありがとうございます。 JSPかサーブレットか忘れてしまったのですが、 配列に値がわたっていない感じでした。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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)

  • 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) ~略~

  • java.lang.StackOverflowErrortというエラー

    java.lang.StackOverflowErrortというエラー 質問させてください。 JSPでプログラム作成しています。 forwardを使用して自分自身のページを読み込もうとすると、下記のエラーが出ます。 致命的: Exception initializing page context java.lang.StackOverflowError エラーに調べてみましたが、詳しくはわかりませんでした。(勉強不足で申し訳ありません。) とりあえず、forward先を別のページにするとこのエラーは出ないので、forwardの処理を何とかしたいと思います。 行いたいことはページの更新処理なのですが、何か良い方法はありませんでしょうか。 以上よろしくお願いいたします。

    • ベストアンサー
    • Java
  • JSP NullPointerException

    JSPでNullPointerExceptionが出たのですが、初めて見るエラーなので、 どういうものなのか、どなたか教えてください。 スタックトレースは以下です。 メッセージ java.lang.NullPointerException 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) accession.filter.SessionFilter.doFilter(SessionFilter.java:97) accession.filter.ReferFilter.doFilter(ReferFilter.java:39) accession.filter.TimeoutFilter.doFilter(TimeoutFilter.java:23) accession.filter.EncodeFilter.doFilter(EncodeFilter.java:10) 原因 java.lang.NullPointerException org.apache.jsp.Use.Select.SendSelect_jsp._jspService(SendSelect_jsp.java:93) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) accession.filter.SessionFilter.doFilter(SessionFilter.java:97) accession.filter.ReferFilter.doFilter(ReferFilter.java:39) accession.filter.TimeoutFilter.doFilter(TimeoutFilter.java:23) accession.filter.EncodeFilter.doFilter(EncodeFilter.java:10) 原因一行目の「SendSelect_jsp.java:93」は何というファイルの93行目のことですか? SendSelect_jsp._jspServiceというのは・・・? このようなエラー(_jspServiceが原因の最初にあるもの)は初めてで、 調べてはみたのですが、同じようなエラーを見つけられなかったので、 教えてください。 JSPがSendSelect.jspで、SendSelect.javaを使っています。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • jspのエラーが修正できません。

    jspソースのエラーが修正できなくて困っています。 現在、tomcat5.5とjdbc、muSQLなどを用いてシステムを作っています。 形態素解析などと組み合わせたいので、 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> を使いたいのですが、実行すると以下のエラーが発生します。 org.apache.jasper.JasperException: 絶対URI: http://java.sun.com/jsp/jstl/core はweb.xmlとこのアプリケーションを配備したJARファイルのどちらかでも解決できません org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) jsp1.1やjstlのjarファイルはWEB-INT/libフォルダに入れています。 web.xmlもバージョン2.4なので問題がないように思います。 いろいろ修正したのですがエラーが消えず、困り果てています。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 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
  • Javaコンパイルエラーについて

    「Java+MySQL+Tomcatで始めるサーバアプリケーション開発入門」という本の通りに tomcatをインストールして、http://localhost:8080/ にアクセスした所、 tomcatのトップページが出てこずに以下のようなエラーメッセージを出力しました。 これを対処するには具体的にどのようにすればいいのでしょうか。 宜しくお願い致します。 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: null の中の行: -1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file C:\Program Files (x86)\Apache Group\Tomcat 4.1\work\Standalone\localhost\_\index_jsp.java:8: java.lang.Object にアクセスできません。 クラスファイル C:\Program Files (x86)\Java\jre7\lib\rt.jar(java/lang/Object.class) は不正です。 クラスファイルのバージョン 51.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 public class index_jsp extends HttpJspBase { ^ エラー 1 個 at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130) at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293) at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:340) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:352) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:474) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:184) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534) ・・・・(続く)

    • ベストアンサー
    • Java
  • JSPファイルがコンパイルできない!

    雑誌に付いていたtomcat3.2.3用のServlet/JSPを tomcat4.1.10で動かそうとしたら、JSPファイルが コンパイルできないというエラーが出ました。 エラーの内容は、 ------------------------ org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: /*****.jsp の中の行: 1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\*****\*****_jsp.java:43: シンボルを解決できません。 シンボル: クラス ○○ 場所 : org.apache.jsp.*****_jsp の クラス ***** ***** = (*****)request.getAttribute("*****"); ^ -------------------------- といった感じです。 tomcat3.2.3ではちゃんと動いたのですが、 4.1.10では他に何かしなければいけないのでしょうか。 よろしくお願いします。

  • jspのソース量限界?なのでしょうか・・・

    すいません。未だjavaをはじめて数ヶ月しか経っていない初心者です。 仕事でショッピングサイトのカスタマイズをしています。追加していくうちに、色々includしてあるmainのjspにこんなエラーが出てしまいました。 g.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: null の中の行: -1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file C:\xxxxx\ファイル名\work\org\apache\jsp\main_jsp.java:135: コードが大きすぎます。 public void _jspService(HttpServletRequest request, HttpServletResponse response) ^ エラー 1 個 もしくは try・catchが受け取る値が大きすぎるとの事、これはtry・catchをコメントにして回避したのですが コメントなど可能な行の削除はしたのですが、このエラーがでてから削除したのに関わらず、全く追加ができなくなってしまいました。 納期が迫っていてピンチです!!どなたかご存知な方教えてください!!お願いします!!

    • ベストアンサー
    • Java
  • [JSP]1Servletから複数フレームにパラメータ渡し

    HTMLの<frame>タグでaaa.jspとbbb.jspを同時に表示させています。 aaa.jspからのフォームの値をHOGEというServletで受取り、 処理したものをaaa.jsp・bbb.jsp共に反映(更新)させるにはどうすれば良いでしょうか? 現状、forwardを2回書いているのですが、下記の様に怒られてしまいます。 (エラー/java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません ) ============aaa.jspのフォーム=================================== <form name="a1" method="post" action="/HOGE"> <input type="submit" name="GO" value="go"> </form> ================================================================ ============HOGE (サーブレット)================================ public class HOGE extends HttpServlet { public void doPost (HttpServletRequest request, HttpServletResponse response){ //jspに渡すパラメータをセット request.setAttribute("pram1", "judy"); request.setAttribute("pram2", "mary"); //forward準備 ServletContext sc = getServletContext(); RequestDispatcher aaa = sc.getRequestDispatcher("/jsp/aaa.jsp"); ServletContext sa = getServletContext(); RequestDispatcher bbb = sa.getRequestDispatcher("/jsp/bbb.jsp"); try { aaa.forward(request, response); bbb.forward(request, response); //ここでエラー } catch (ServletException e) { } catch (IOException e) { } } } ============================================================== どなたかご存知の方いらっしゃいましたら御教授宜しくお願いします。