我们正在使用Vaadin应用程序,并且在使用时,Vaadin最终会显示错误“会话已过期”,但在主持此应用程序的Glassfish中,会话超时设置为8小时(远远超过最后一段时间)访问并获得'会话过期')。在调试应用程序之后,我们挖出了这个东西:在加载页面时,Vaadin使用request.getSession(true)
请求会话,以便后续的ajax请求使用request.getSession(false)
;并最终request.getSession(false)
返回null
,因此会显示session expired
消息。似乎Web容器忽略了会话超时设置。
答案 0 :(得分:2)
Glassfish中的默认会话超时为30分钟。如果这符合您的体验,则会以某种方式完全忽略8小时(28800秒)的超时设置。
您可以在glassfish-web.xml中指定超时: glassfish-web-app> session-config>会话属性>设置的时间
或者您可以在web.xml文件中指定session-timeout元素。这会覆盖timeoutSeconds值。