首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网页长时间打开抛出Nullpointerexception

网页长时间打开抛出Nullpointerexception
EN

Stack Overflow用户
提问于 2011-09-17 05:33:50
回答 2查看 995关注 0票数 1

我正在开发一个使用JSP和Servlet的网站,使用Apache -tomcat5.5作为服务器。我的应用程序运行得很好。但每当我打开任何网页,并在一段时间后返回,比如30分钟后,单击任何按钮或图标,它都会抛出错误消息--

代码语言:javascript
复制
Sep 16, 2011 2:11:33 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
    at org.apache.jsp.homepage_jsp._jspService(homepage_jsp.java:107)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Unknown Source)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-17 05:35:23

听起来你的会话快超时了。您需要强制用户重新登录,或者延长会话超时时间。

您可以通过编辑web.xml并添加以下内容来更改会话超时:

代码语言:javascript
复制
<session-config>
  <session-timeout>60</session-timeout>
</session-config>

这将为您提供60分钟的会话超时。-1表示没有超时。

票数 3
EN

Stack Overflow用户

发布于 2011-09-17 21:15:30

org.apache.jsp.homepage_jsp._jspService(homepage_jsp.java:107)上的

java.lang.NullPointerException

只有在很长一段时间后才会出现这种现象,这确实表明会话已超时。但是更改会话超时不是正确的解决方案。您的JSP中实际上有一个bug

因为您使用的是老式的Java,而不是servlets之类的普通<% %>类来控制请求/响应,并在JSP中执行业务工作,所以更难确定NullPointerException的根本原因。您需要在服务器的工作目录中打开生成的homepage_jsp.java,然后转到第107行,最后将此行返回到您的homepage.jsp中,这样您就可以修复错误了。

也许你需要做一个request.getSession()而不是request.getSession(false),或者你需要在访问会话属性之前检查它是否不是null,等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7450608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档