javax.servlet.ServletException///java.lang.NullPointerException

yueguangshizhe 2008-05-15 02:51:34
请高手指点,非常感谢!!!
Tomcat5.5.26报错:
exception:
javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:520)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:427)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause :
java.lang.NullPointerException
com.core.MySession.openSession(MySession.java:24)
com.dao.UserDAO.query(UserDAO.java:15)
com.dao.UserDAO.login(UserDAO.java:70)
com.action.User.login(User.java:130)
com.action.User.execute(User.java:34)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
MySession.java:
public class MySession {
static SessionFactory sessionFactory;
static {
try {
Configuration config = new Configuration().configure();
sessionFactory = config.buildSessionFactory();
} catch (Exception e) {
System.out.println("创建SessionFactory时的错误信息:" + e.getMessage());
}
}

//打开Session
public static Session openSession() {
24行: Session session = sessionFactory.openSession();
return session;
}

//关闭Session
public static void closeSession(Session session) {
if (session != null) {
session.close();
}
}

}
UserDAO.java:
public String login(UserForm userForm,HttpServletRequest request){
String rtn="";
String name=userForm.getName();
String pwd=userForm.getPwd();
String str="name='"+name+"'";
70行: List list = query(str);
if(list.size()==1){
UserForm m=(UserForm)list.get(0);
String username=m.getName();
if(pwd.equals(m.getPwd())){
rtn="ok";
//********将登录的用户名称保存到HttpSession中****
HttpSession httpsession=request.getSession();
httpsession.setAttribute("username",username);
//********************************************
System.out.println("登录成功!");
}else{
rtn="您输入的密码错误!";
System.out.println("密码错误!");
}
}else{
rtn="您输入的用户名称错误!";
System.out.println("您输入的用户名称错误!");
}
return rtn;
}
User.java:
//用户登录
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {

UserForm userForm = (UserForm) form;
130行: String rtn=userDAO.login(userForm,request);
if(rtn.equals("ok")){
return mapping.findForward("loginok");
}else{
request.setAttribute("error",rtn);
return mapping.findForward("error");
}
}


}else if(action.equals("login")){
34行: return login(mapping,form,request,response);
}else{
request.setAttribute("err","您的操作有误!");
return mapping.findForward("error");
}
...全文
444 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
frameguy 2008-06-12
  • 打赏
  • 举报
回复
原因是出在外键关联这里 ,楼主仔细查一下 ,有没有哪个关联的POJO类定义错了,或者没有定义。
anysky130 2008-06-01
  • 打赏
  • 举报
回复
这不hibernate嘛.sessionFactory处理事务的,空指向异常
看看你别的参数有一个没有值时,你却用了它,就出了这个问题.找变量声明吧!
rabbitbug 2008-05-31
  • 打赏
  • 举报
回复
另外,怎么会找上我的呢?
我来这好象也不多吧
:)
rabbitbug 2008-05-31
  • 打赏
  • 举报
回复
首先对struts不熟悉
只能猜测了
因为没看到你是如何调用MySession的
在24行之前,你判断一下sessionFactory是否为空
因为不知道你有没有对sessionFactory重新设置为了null

调试方法
在每个出错的语句前
测试对象是不是null
这样应该可以知道是哪条语句有问题了
yueguangshizhe 2008-05-18
  • 打赏
  • 举报
回复
谢谢,不过我还是不知道怎么改过来,能详细一些吗?真是给您挑麻烦了,真的很感激!!!
老紫竹 2008-05-15
  • 打赏
  • 举报
回复
这里的Session 是事务,不是JSP里面的那个session
richard_2010 2008-05-15
  • 打赏
  • 举报
回复
不好意思,受您所邀,本人对servlet不是很懂,要是java语言和oracle还可以帮忙看看
yueguangshizhe 2008-05-15
  • 打赏
  • 举报
回复
我是根据书上写的,说是为了减少代码的重复,把所有关于Session打开和关闭的操作都封装在一个MySession.java中,这样就可以直接调用了
kyouetuhou 2008-05-15
  • 打赏
  • 举报
回复
session直接用就行了。为什么要这样做呢?
kyouetuhou 2008-05-15
  • 打赏
  • 举报
回复
MySession ???

//打开Session
public static Session openSession() {
24行: Session session = sessionFactory.openSession();
return session;
}


为什么要这样做?


sessionFactory = config.buildSessionFactory();

sessionFactory = null了吧?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧