如何在JSP中获取有关NullPointerException的详细信息?

时间:2010-04-16 23:05:42

标签: java jsp nullpointerexception

我在jsp中得到一个空指针异常,我想找出哪个行有null变量,所以我可以修复它。有没有简单的方法来做到这一点? printStackTrace似乎没有给我任何相关信息。

堆栈追踪:

java.lang.NullPointerException 
    at org.apache.jsp.data.index2_jsp._jspService(index2_jsp.java:176) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
    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:802) 
    at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAsPrivileged(Subject.java:537) 
    at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276) 
    at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:262) 
    at org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:192) 
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:171) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
    at org.apache.catalina.co
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
    at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:420)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    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(Thread.java:636) 

1 个答案:

答案 0 :(得分:7)

它不漂亮,但您可以进入工作目录并找到指定的Java文件(转换后的JSP)并查看指定行上的操作。通常,Tomcat将保留生成的servlet的源,除非配置为不。它至少应该帮助您找到错误点或相应的JSP行。

希望这有帮助。