空指针异常,又是
空指针异常!!!
我现在做的是一个后台管理员登录的系统,但是提示有空指针异常!!异常信息如下:
root cause
java.lang.NullPointerException com.tytd.argi.persistence.AdminSql.findByPwd(AdminSql.java:46)
com.tytd.argi.business.Admin.getByPwd(Admin.java:35)
com.tytd.argi.struts.action.AdmLogAction.execute(AdmLogAction.java:34)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
------解决方案--------------------AdminSql.java:46行
空指针异常就在你的这一行抛的吧
能把代码贴出来?
------解决方案--------------------findByPwd()
检查一下这个方法吧
------解决方案--------------------哪一行是46行啊?...
------解决方案--------------------List result = session.createQuery(sq.toString()).list();//46行
在这行之前把你组合的sql语句打印出来 仔细看看
估计是
String adminName,String password1 其中有一个是null
------解决方案--------------------要么就是sq是空值(但是这个可能性不大)。
应该是你的session是空值,你在程序别的地方已经把currentSession关闭了,所以这里再引用就发生了空指针的错误。
------解决方案--------------------可能是你在这个页面获取上一个页面的表单内容时把name写错了
如上一页的 <input type= "text " name= "name "> 而在这页 在得到这个名字时得到这个值时写成了nema,
类似的例子 你用的是session
------解决方案--------------------Session是空的哟。HibernateSessionFactory是不是有个getSession()哟。如果是你自己写的HibernateSessionFactory类,你要确保你那个currentSession是有效的哟。
------解决方案--------------------1 .append( " ' and e.password1= ' "). 字段名是password1?
2 session.createQuery(sq.toString()) 是否为空?
建议:在任何操作前,多判断要操作的对象是否为空
------解决方案--------------------Session session = (Session) HibernateSessionFactory.currentSession();
我怀疑你取session就是null了
------解决方案--------------------sessionFactory 为 null 代表加载hibernate的时候有问题,看看加载的时候有木有错?
------解决方案--------------------把sessionFactory拉出来看下嘛。
------解决方案--------------------一般都是参数没写