【问题标题】:NullPointerException in JSP with Tomcat带有 Tomcat 的 JSP 中的 NullPointerException
【发布时间】:2013-05-07 19:57:26
【问题描述】:

这是我在 jsp 中的代码,当我运行它时出现如下错误。我正在使用 tomcat 。我真的很想知道这个问题的原因是什么?

test.jsp

<%@page import="java.sql.Connection"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="admin.User"%>
<%@page import="admin.ConnectionManager"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> test </title>
</head>
<body>

<div>
        <table>
            <%
            ResultSet rs = User.loadAll(); 
                while (rs.next()) { 
            %> 

            <tr>
               <TH>ID</TH>
               <TH>Name</TH>
               <TH>Surname</TH>
               <TH>Email</TH>

           </tr>
           <tr>
               <td> <%= rs.getInt(1) %> </td>
               <td> <%= rs.getString(2) %> </td>
               <td> <%= rs.getString(3) %> </td>
               <td> <%= rs.getString(4) %> </td>


           </tr>
        </table>
    </div>

       <% 
           } 
       %>
    </body>
</html>

HTTP 状态 500 - java.lang.NullPointerException


type Exception report

message java.lang.NullPointerException

description The server encountered an internal error that prevented it from fulfilling this request.

exception 

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)


root cause 

java.lang.NullPointerException
    org.apache.jsp.test_jsp._jspService(test_jsp.java:75)
    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)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.36 logs.

Apache Tomcat/6.0.36

【问题讨论】:

  • 尝试将你的 while 循环包装在一个空检查中,看看你是否真的从你的用户负载中得到了结果:if (rs != null) {...
  • 究竟什么是空?跟踪您的异常。
  • 检查位于 Tomcat/work 目录下的 test_jsp.java 文件。它是您的 JSP 文件翻译成 java,在第 75 行,您将识别出您自己插入到 JSP 页面中的 java 代码。
  • 请不要再问同样的问题;您可以编辑您的原件。

标签: jsp tomcat


【解决方案1】:

您应该检查 Apache Tomcat 日志,但可能 User.loadAll() 返回 null 设置为 rs 并且 NullPointerException 在 rs.next() 上引发

顺便说一句,body 和 html 都没有关闭,或者你只是错误地复制了代码。

【讨论】:

  • 是的,我关闭了它们。这就是方法 public static ResultSet loadAll() { return query("SELECT * FROM user");我应该怎么做才能不返回 null
  • 当我进入 apache tomcat 日志时没有文件,是因为我通过 Eclipse 开发我的应用程序吗?我如何从 Eclipse 中检查它们?
  • 日志应该在那里,您是否使用 Eclipse 插件来启动/关闭 Tomcat?好吧,事实上你设法解决了你的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 2016-02-18
相关资源
最近更新 更多