15

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

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

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

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

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

4

3 回答 3

19

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

deployers/jbossweb.deployer/web.xml

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

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

HttpSession.setMaxInactiveInterval(int seconds)

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

于 2010-07-09T08:37:29.967 回答
8

遗憾的是,在 JBoss EAP 6.1.0.Alpha1 (AS 7.2.0.Alpha1-redhat-4) 中,我们又不得不在 web.xml 中为每个 Web 应用程序设置它:请参阅 JBoss 文档

哪个说使用这个:

<session-config>
    <session-timeout>30</session-timeout>
</session-config>
于 2013-10-11T17:27:13.970 回答
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>
于 2020-10-19T15:05:44.643 回答