首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

查询报NullPointerException错误!

2014-01-26 
查询报NullPointerException错误:做了个简单的查询页面: 错误:java.lang.NullPointerException org.apache.

查询报NullPointerException错误:

做了个简单的查询页面:
错误:java.lang.NullPointerException
org.apache.jsp.result_jsp._jspService(result_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Java code
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>">  <title>列车车次查询</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0">  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body bgcolor="#ffffff"> <h1><center>列车车次查询系统</center></h1> <form action="trainAction.do" method="post"> <br> <br> 列车车次:<input type="text" name="traincode"><br> <br> <input type="submit" value="查询" name="query"> </form> </body></html>





------解决方法--------------------------------------------------------
trainAction.do
是什么。
------解决方法--------------------------------------------------------
哎呀,原来你还没发完,,明天再来,睡觉去。
------解决方法--------------------------------------------------------
finaly里要加上HibernateUtil.closeSession();吧,不然出错后session就不用关闭了
空指针异常,你找你用到的变量看是否有值

------解决方法--------------------------------------------------------
看一下result_jsp.java:63
看看这里到底是什么
------解决方法--------------------------------------------------------
你测试下你从TrainActionForm  取出的trainCode 是不是NULL。
从异常看应该是trainCode 值为NULL,执行查询是抛出空指针异常。
------解决方法--------------------------------------------------------
用端点查看空指针最方便了
------解决方法--------------------------------------------------------
你都没有给出关键的result.jsp,你给出的那个jsp是出入条件的。
个人感觉应该是result.jsp没有对t做空指针判断,有可能查询出来的 结果是空的


------解决方法--------------------------------------------------------
List list = query.list();
for(int i=0;i <list.size();i++) {
t = (Train) list.get(i);
}
tx.commit();

看这段,你还没有提交,所以List里根本就什么也没有,list.get(i);肯定是空指针啊
你要先把东西查出来
------解决方法--------------------------------------------------------
你慢慢找,空指针太正常了,建议把result.jsp的部分代码先注释掉,
用'二分法'找出抛出NullPointerException的地方。
------解决方法--------------------------------------------------------
探讨
List list = query.list();
for(int i=0;i <list.size();i++) {
t = (Train) list.get(i);
}
tx.commit();

看这段,你还没有提交,所以List里根本就什么也没有,list.get(i);肯定是空指针啊
你要先把东西查出来

------解决方法--------------------------------------------------------
1。你可以通过debug来调试程序,只要把断点加在报错的那一行就可以了
2。(很笨的方法)在程序中添加System.out.println()输出语句,在console上看输出的结果,然后找出问题所在
------解决方法--------------------------------------------------------