2009-07-09 14:26:15,401 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/frameweb].[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.common.thirdMenu_jsp._jspService(thirdMenu_jsp.java:54)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
2009-07-09 14:26:15,401 ERROR [STDERR] org.apache.jasper.JasperException: Exception in JSP: /common/thirdMenu.jsp:129: <%
10: WFTemplateManager templateMgr = new NFTemplateManagerImpl();
11: String process = request.getParameter("process");
12: List templateList = templateMgr.getAllCreateTplByUserId(process,session.getAttribute("userid").toString());
13: List personList = new ArrayList();
14: List groupList = new ArrayList();
15: for(int i=0; i < templateList.size(); i++) {
------------------------------------
WFTemplateManager是一个interface
接口:public interface WFTemplateManager
实现类:public class NFTemplateManagerImpl implements WFTemplateManager在什么情况下会出现这个NullPointerException?此现象偶然出现。。
java.lang.NullPointerException
at org.apache.jsp.common.thirdMenu_jsp._jspService(thirdMenu_jsp.java:54)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
2009-07-09 14:26:15,401 ERROR [STDERR] org.apache.jasper.JasperException: Exception in JSP: /common/thirdMenu.jsp:129: <%
10: WFTemplateManager templateMgr = new NFTemplateManagerImpl();
11: String process = request.getParameter("process");
12: List templateList = templateMgr.getAllCreateTplByUserId(process,session.getAttribute("userid").toString());
13: List personList = new ArrayList();
14: List groupList = new ArrayList();
15: for(int i=0; i < templateList.size(); i++) {
------------------------------------
WFTemplateManager是一个interface
接口:public interface WFTemplateManager
实现类:public class NFTemplateManagerImpl implements WFTemplateManager在什么情况下会出现这个NullPointerException?此现象偶然出现。。
session过期就出现!
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
标数字行数的地方出现空值了
10: WFTemplateManager templateMgr = new NFTemplateManagerImpl();
这个templateMgr 不可能是NULL,
但我们这个系统没有对SESSION进行控制,不存在SESSION过期的现象。。所以还没找到原因。。
还有templateList.size(),使用之前为什么不做非空检查?
少些这两句就真这么省事了?
session 过期就出现;
你应该通过超链接把userid的值传个来,
通过int userid=Integer.paramer(request.getAttribute("userid"));
你的getAllCreateTplByUserId()参数是什么啊!!我看着像根据主键来做查询的哦!那么你的这个参数session.getAttribute("userid").toString()又有什么意义呢!提取出来是String的啊!你的 process 可能取值为空!如果 你的项目不对Session做任何处理的话!它默认30分钟。如果还有问题LZ你可能需要贴代码了
估计是process没有取到值
10: WFTemplateManager templateMgr = new NFTemplateManagerImpl();
11: String process = request.getParameter("process");
System.out.println("-------------------process ="+process+"----------------");
System.out.println("-------------------userid ="+session.getAttribute("userid")+"----------------");
12: List templateList = templateMgr.getAllCreateTplByUserId(process,session.getAttribute("userid").toString());
13: List personList = new ArrayList();
14: List groupList = new ArrayList();
楼主加上上面红色两句,看看它在哪里报错,如果在第二个输出错的话,那就是你拿不到userid的值。
2:Debug一下,现在Eclipse,netBean,Idea主流IDE都支持jsp单步调试。