1

私のサーブレットでは、次のことを行います。

request.getRequestDispatcher("/page.jsp").forward(request,response);

Tomcat 6 では次のようになりますNullPointerExceptionが、Tomcat 7 では動作します。

SEVERE: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException
    at org.apache.jsp.page_jsp._jspInit(page_jsp.java:23)
    at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at com.dotvocal.poa.vocal.main.servlet.LoadCompany.execute(MyServlet.java:100)
    at com.dotvocal.poa.vocal.main.servlet.LoadCompany.doGet(MyServlet.java:60)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

私も次のことを試しました:

request.getRequestDispatcher("http://localhost:8080/myapp/page.jsp").forward(request,response);

しかし、それは問題を解決しませんでした。

4

2 に答える 2

2

org.apache.jsp.page_jsp._jspInit (page_jsp.java:23) での java.lang.NullPointerException

jsp-api.jarwebapp の/WEB-INF/lib、または多分JDK/libまたはのようなサーブレットコンテナ固有の JSP ライブラリがありますJDK/lib/ext

それらを削除します。彼らはそこにまったく属していません。サーブレットコンテナ自体は、これらのライブラリにすでに同梱されています。問題の症状に基づいて、webapp にあるものは Tomcat 7 に由来するため、webapp を Tomcat 6 などの別の servletcontainer の make/version に展開すると、servletcontainer 自体と競合するため、webapp は機能しません。ライブラリ。

サーブレット コンテナ固有のライブラリを webapp に誤って配置すること/WEB-INF/libは、IDE プロジェクトでサーブレット API のコンパイル エラーを修正しようとする典型的な初心者の間違いです。代わりに、サーブレットコンテナを IDE プロジェクトで「ターゲットランタイム」として参照する必要があります。

以下も参照してください。

于 2012-08-30T15:07:06.727 に答える
0

JBoss 4.3 を使用して同じエラーが発生しました。私の解決策は、JBoss 環境からログ、作業、および tmp フォルダーを削除することでした。

于 2015-09-18T11:29:09.997 に答える