Seam error: javax.faces.application.ViewExpiredException

For one of our clients, I am trying to test a seam application so that the session time out is 24 hours across Seam, Tomact and Apache. However, with my current settings, the error mentioned above is thrown before 24 hours have passed between sucessive visits to the application. I altered the folowing values:

 

connectionTimeout="86400000" in server.xml  (mili seconds, equals 24 hours)

conversation-timeout="86400000" in components.xml (mili seconds, equals 24 hours)

<session-timeout>1440 in web.xml (minutes, equals 24 hours)

 

worker.node1.socket_timeout=86400  in worker.properties for mod_jk (seconds, equals 24 hours)

 

<max-bean-life>86400</max-bean-life> in standardjbosss.xml

 

Does anyone see a problem here?

Comments

The workaround is exactly the *opposite* for what I need. Its for cases in which you *WANT* to see the exception, not for cases you want to disable the exception.

Try check JSESSIONID cookie expiration time just after visit a page

Long time when I last wrote in this useless framework called JSF.
I did a little reading and a bit of thinking... It looks like it might involve web server configuration like some resources exceeded its memory I would consider going over faces config and the web server's like Tomcat: http://tomcat.apache.org/tomcat-6.0-doc/config/manager.html

Another lead can be the exception itself (I will not be surprised if it's a bug, that is also a possibility) I learned from the experience with JSF that sometimes you've got to do it by yourself. The suggestion mentioned about catching the exception might be good for you as a workaround (keep my session don't go away) This is an interesting blog : http://patton-prog-tips.blogspot.com/

Arik, thanks for the links,

I am actually able to catch the exception whenever there is a seam conversation timeout and forward to an error page, this has been working for ages.

I am just interested in extending the timeout to 24 hours, I am not interested in suppressing the error.

Ok, so I can see you did your homework :)
I did some more reading and there are two main courses:
1) Tomcat/web server
In this area I couldn't find any problem except someone whom claimed that the session timeout is actually not the same in different OS, I doubt that but still have you checked that 30 min is indeed timeout-ed or else if you can say that 10 min works and 40 min doesn't? And this might lead to maybe memory problem? Can you check if your server memory allocation is rising?
2) Web framework - Seam
I did read in here also and every other post lead to this link: http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user although still everybody complained about this exception.

I might look at the issue list in Tomcat/Seam maybe it'll give some lead...
After couple of days... If you still with no progress I would go investigate the source code.

Arik, thanks for your efforts ...

As far as I recall ,the reason why on different OS there is different timeout might be associated with the fact that a scheduler runs every X seconds and then invalidates the session in case the timeout has passed.

Regarding your second suggestion, the link provided handles the redirection. As I mentioned above ... I already handle redirection , it is the extending of the timeout to 24 hours that I am worried about, NOT the redirection (which works perfectly when I do have a timeout). Capiche?

According to your reply obviously you didn't get my post.

Hi Arik, what do you mean?
I did read your post and commented on it. Unless I am overlooking something, there was nothing in your post to aid in solving the issue.

This has now become a critical issue for me, any Seam experts who faced the same issue are welcomed to help ASAP :)

Hi,

I don't know if its still relevant, anyways you can use spring remember-me service.
check this link for more info : http://forum.springsource.org/showthread.php?t=55050
Cheers,
Oded.