Hi,
I'm tasked with killing a bug related to session management and Struts 1.3.10
in a rather conventional JEE web application. The problem is that after the
session times out, the application throws a rather ugly exception, something
like:
2009-11-04 11:45:46,803 ERROR de.mypackage.ipad.util.hibernate.HibernateFilter
- An Exception occured.
javax.servlet.ServletException: BeanUtils.populate
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
at
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at...
What I understand is that after the session is gone, the internal Struts
processing tries to put some data into session-stored objects. It does so with
help of Apache BeanUtils and I'm aware that this will crash, of course. My goal
is to present a page with a clean message that the session is gone and the user
has to re-enter the application. Catching the ServletException at application
level (via web.xml) is a bad idea because of the rather generic exception
thrown. My current take is that I need a filter which is called before the
Struts servlet is called and the filter checks the session beforehand via
standard Java API (isNew()). For a new session the user is redirected to a
descriptive error page. This might work if the user is already in the
application and takes a break, but isNew() will return true at the first entry
as well which is nonsense, of course.
What is the best practice to deal with this problem for a Struts 1.3
application? Or is this not a standard problem and the cause might be something
different?
Mit freundlichen Grüßen
Maik Himstedt
T-Systems on site services GmbH
Procurement Systems
Telefon/phone: +49-5361-9-44026
E-Mail: [email protected]
--------------------------------------------------------------------------------
Maik Himstedt
Consultant
Benzstraße 25a, 38446 Wolfsburg
+49-5361-464 78-0 (Tel.)
+49-5361-464 78-10 (Fax)
E-Mail: [email protected]
Internet: http://www.t-systems-onsite.de
Geschäftsführung: Stefan Kappe, Thomas Müller-Braun
Handelsregister: Amtsgericht Berlin HRB 51336
Sitz der Gesellschaft: Berlin