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