我正在使用Jboss AS 5.1.0 GA
. 我已经JSF 1.2 servlet
在上面运行了。
我有一个扩展的自定义会话侦听器PortalSessionListener
(正在运行Liferay 6.0
)
在web.xml
我的Jboss AS
中,我已配置session-timeout
为 3 分钟。当我点击我的JSF servlet
,并且在 3 分钟内不做任何事情时,我的自定义会话侦听器被调用并被sessionDestroyed(HttpSessionEvent httpSessionEvent)
调用。
如果我在我的 servlet 上执行一些活动,那么在第 3 分钟之前,它session
会被扩展。那我什么都不会做。这一次,如果我查看日志,我的自定义会话侦听器将在第 2 分钟而不是第 3 分钟被调用,并通过调用sessionDestroyed(HttpSessionEvent httpSessionEvent)
.
我的第一个问题是为什么在上述情况下会话失效没有在正确的时间发生?
另外,我已经配置了session-timeout
我web.xml
的Servlet
. 我正在使用httpServletRequest.isRequestedSessionIdValid()
方法来检查会话是否有效,如此处所述。在上述情况下session
,大约在第 2 分钟失效,这一次是在打印会话失效日志之后,如果我点击我的 Servlet 上的任何页面,它仍然会发现它还session
没有失效。但是,它的发现session
仅在第 3 分钟后才失效。
我的第二个问题是为什么在 Jboss AS web.xml 中配置的会话超时和在 Servlet 的 web.xml 中配置的会话超时之间存在差异?
问候,
维卡斯