Rydell
Rydell

Reputation: 4207

JBoss Session Timeout

I'm trying to write the part of my app so that it handles session timeouts gracefully, but I can't seem to control how the duration of time before a timeout occurs for testing.

I am using JBoss 5.1, and I am modifying the session-config my web descriptor (web.xml) such that the session times out after a minute (just for testing)

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

But after creating a session by logging in, it never times out. No setting that I give it causes a timeout.

In a tomcat environment, I haven't had this problem. Has anyone had a similar problem with JBoss?

Upvotes: 15

Views: 50853

Answers (3)

Balu
Balu

Reputation: 691

In case of some settings JBoss overrides the ones you provide in web.xml . You need to specify the same in a config file named "jboss-web.xml" to apply this setting. You can place this file next to the web.xml, in the same folder.

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

Upvotes: 0

RedYeti
RedYeti

Reputation: 1224

Sadly in JBoss EAP 6.1.0.Alpha1 (AS 7.2.0.Alpha1-redhat-4) we're back to having to set it per web app in web.xml: See the JBoss docs.

Which say use this:

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

Upvotes: 8

Pere Villega
Pere Villega

Reputation: 16439

JBoss 5 allows you to define a session timeout for all applications at:

deployers/jbossweb.deployer/web.xml

It may be that is overriding your settings in web.xml. It shouldn't, but, you know...

Check if changing that is working. If not, you can set up the timeout programatically for your test:

HttpSession.setMaxInactiveInterval(int seconds)

That way you can force the timeout in a particular session.

Upvotes: 19

Related Questions