JBoss会话超时

时间:2010-07-07 17:51:36

标签: jboss session-timeout

我正在尝试编写应用程序的一部分,以便优雅地处理会话超时,但我似乎无法控制超时发生前的持续时间以进行测试。

我正在使用JBoss 5.1,我正在修改session-config我的web描述符(web.xml),以便会话在一分钟后超时(仅用于测试)

<session-config>
  <session-timeout>1</session-timeout>
</session-config>

但是在通过登录创建会话后,它永远不会超时。没有我给它的设置会导致超时。

在tomcat环境中,我没有遇到过这个问题。有没有人遇到类似JBoss的问题?

3 个答案:

答案 0 :(得分:17)

JBoss 5允许您在以下位置为所有应用程序定义会话超时:

deployers/jbossweb.deployer/web.xml

可能会覆盖 web.xml 中的设置。它不应该,但是,你知道......

检查更改是否有效。如果没有,您可以以编程方式为测试设置超时:

HttpSession.setMaxInactiveInterval(int seconds)

这样你可以在特定会话中强制超时。

答案 1 :(得分:6)

遗憾的是,在JBoss EAP 6.1.0.Alpha1(AS 7.2.0.Alpha1-redhat-4)中,我们又回到必须在web.xml中为每个Web应用程序设置它:See the JBoss docs

用哪个说这个:

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

答案 2 :(得分:0)

对于某些设置,JBoss会覆盖您在web.xml中提供的设置。您需要在名为“ jboss-web.xml”的配置文件中指定相同的名称以应用此设置。您可以将此文件放在web.xml旁边的同一文件夹中。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<jboss-web>  
  <session-config>
    <session-timeout>1</session-timeout>
  </session-config>
</jboss-web>