Hi,

In short: What happens to session variables when you cause class
reloading in a webapp?

In full: I'm currently writing a system where the user must always
stay logged in.  When the user logs in it checks the database, pulls
that users info and creates a 'User' for that person.  This User class
is placed in the session:
        HttpSession session = req.getSession(true);                     
        session.putValue("theUser", user);

Whenever a user tries to access a new servlet it checks first whether
that user is logged on and secondly whether they have authorization
for the servlet.  This used to work on JServ for me - when you reloaded
a zone the session variables get invalidated and when you do the 
req.getSession(true) it simply loaded a new session and the person logged
in again - fine.   

What seems to be happening now is that the session is hanging around
but is 'corrupt' - when I modify a class and don't restart tomcat a
problem occurs when you try this:
        
        HttpSession session = req.getSession(true);
        user = (User) session.getValue("theUser");

What occurs now is that you get a ClassCastException on the second line
here, even though it is correct.  

The only way around this is to restart the tomcat server every time I 
make a change to the webapp. Does anyone know if this is a bug, whether
there is a way around it or exactly what goes on?  Any help would
be great.

Dave Molloy

PS: Using Tomcat 3.1 Release on Solaris 2.7 standalone.



Reply via email to