1

JSP プロジェクトのインデックス ページにアクセスすると、このエラーが発生します。

Sep 3, 2013 12:03:14 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/MyProject] threw exception [java.lang.NullPointerException] with root
cause
java.lang.NullPointerException
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:126)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)

これは TomCat の「標準エラー」だと思いますが、本当の問題が何かわかりません。

4

3 に答える 3

1

It's a java.lang.NullPointerException in your JSP page, but I take it you'd figured that out already.

JSP pages are converted/compiled to Java - thus the (index_jsp.java:126) in the stacktrace - but unfortunately you can't use the line number for figuring out the problem as it doesn't relate to your JSP file, but the resulting Java source.

You should, however, be able to figure out where the NPE happens by inspection, since your JSP is of course a thin presentation layer, right :-) A usual mistake could be referencing attributes that aren't provided on entry to the page, eg. request.getParameter( "something" ).equals( "somethingelse" ) <-- possible NPE on .equals()

If you were to share the JSP page (perhaps in the form of an SSCCE), this community can help much better.

Cheers,

于 2013-09-03T10:29:16.220 に答える
0

行番号を使用してエラーを見つけることができます。(Anders R. Bystrupによる回答は、「...残念ながら、問題を解決するために行番号を使用することはできません」と間違って言っています。)

確かに JSP ページは Java に変換されるため、行番号は JSP の行番号と一致しませんが、変換された Java ファイルは次のような作業ディレクトリにあります。

${TOMCAT_HOME}/work/Catalina/localhost/_/org/apache/jsp/index_jsp.java  

そのファイルの指定された行番号 (126) を見ると、JSP の問題が指摘されます (JSP に同じ行がある可能性があります)。

他の人がすでに指摘しているように、この場合、NPE があります。

于 2015-05-15T20:53:25.893 に答える
0

「Tomcat 標準」エラーではありません。ソースコードのエラーです。JSP は Java に変換されjava.lang.NullPointerException、変数を適切に初期化せずにどこかで使用しようとしていることを示します。または、初期化されることを期待していたかもしれませんが、一部のリソースが利用できないために初期化されていません。

于 2013-09-03T11:49:14.827 に答える