2014-8-14 13:43:43 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [action] in context with path [] threw exception [java.lang.NullPointerException] with root causejava.lang.NullPointerExceptionat org.quickupstart.struts.action.LoginValidateAction.execute(LoginValidateAction.java:33)at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.quickupstart.common.EncodingFileter.doFilter(EncodingFileter.java:43)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)应用在本地跑没有一点问题,部署到服务器,一触发功能后台就抛这个异常,但是前台也没有报HTTP 500错误,功能运行正常。异常里说的33行报红指针,代码如下:HttpSession session = request.getSession(false);
String validate_code = session.getAttribute("code").toString();//这个是33行用log4j也可以输出值。已经晕了!抓狂中........................
5 回答
HUH函数
TA贡献1836条经验 获得超4个赞
两种情况。
1.获取到的session对象为空。
request.getSession(false);如果当前有session则返回当前session,否则返回null;
request.getSession();如果当前有session则返回当前session,否则返回一个新的session。
2.session不为空,session.getAttribute("code")后返回的为空;
用断点调试就知道了,另外,凡是设计到session的地方,最好是用aop模式进行方法前校验。
跃然一笑
TA贡献1826条经验 获得超6个赞
为什么用HttpSession session = request.getSession(false);而不是HttpSession session = request.getSession();呢 ?或者HttpSession session = request.getSession(true);呢
BIG阳
TA贡献1859条经验 获得超6个赞
String validate_code = session.getAttribute("code").toString();//这个是33行
这样String validate_code = (String)session.getAttribute("code");
这样session中code为null的时候也正常。
debug会吧,debug下,看那个对象是null.
添加回答
举报
0/150
提交
取消