《JAVA WEB编程宝典》第20章问题
发表在JavaWeb图书答疑 2013-07-11
是否精华
版块置顶:
首页登录或者注册用户提交后,会报异常:
SEVERE: Servlet.service() for servlet [UserServlet] in context with path [/communication] threw exception
java.lang.NullPointerException
at com.lh.dao.UserDao.getUserByNameAndPwd(UserDao.java:147)
at com.lh.service.UserServlet.checkEnter(UserServlet.java:195)
at com.lh.service.UserServlet.doPost(UserServlet.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.lh.service.CharactorFilter.doFilter(CharactorFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)


这里是因为一下这段代码中,执行finally中的session.close(),而session又为NULL,所以报空指针。
public User getUserByNameAndPwd(String name,String pwd){
User user = null;
Session session = null;
try{
session = SessionFactoryProvider.getSession(); //创建Session实例
String hql=" from User where userName=:name and userPwd=:pwd";//hql语句
Query query=session.createQuery(hql);//创建query对象
query.setString("name", name);//设置用户名参数
query.setString("pwd", pwd);//设置密码参数
if(query.list()!=null&&query.list().size()>0){//判断返回的list集合是否存在用户信息对象
user=(User)query.list().get(0);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
session.close();
}
return user;
}



单步跟踪,发现程序从session = SessionFactoryProvider.getSession();这一行直接跳到finally,并且报
Source not found for ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse),
分享到:
精彩评论 2
jkcarrie
学分:0 LV1
TA的每日心情
奋斗
2020-08-17 14:44:30
2013-07-12
沙发
经验证,SessionFactoryProvider这个类在代码访问的时候就抛出异常
无语_mrkj
学分:3155 LV11
2013-07-13
板凳
请问您是否按照光盘使用说明书中要求的放置了程序所需的Jar包,并且版本也与要求的一致呢?
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照