Problema con las sesiones en struts-spring

"phaseolusv" <[email protected]>
Newsgroups gmane.comp.java.javaspain
Message-ID <[email protected]>
Hola. Espero que alguien pueda ayudarme.
Estoy enfrascado en un problema que no he logrado resolver respecto 
del manejo de sesiones en una aplicacion que he desarrollado.

Entorno: weblogic 9.2, jdk 1.4_12, spring + struts + hibernate + 
xfire.

El problema es el siguiente: Cuando un usuario se logea en el sitio, 
se recuperan de la BD los datos del usuario, y las opciones del menú 
que le corresponden. Estos datos los almaceno en una nueva sesion.


//*** inicio metodo de login() de usuario (LoginAction) ***
	//cerrar explicitamente la sesion de usuario
	 HttpSession session = request.getSession();
	 session.invalidate();
	
	// ...recuperacion de datos desde BD...
	// ...
	
	//Abrir nueva sesion
	HttpSession nuevaSesion = request.getSession();
	nuevaSesion = request.getSession(true);
	
	// Implementar rescate de perfiles y roles
	nuevaSesion.setAttribute("nombreUsr", nombreUsr);
	nuevaSesion.setAttribute("loginUsr", login);
	nuevaSesion.setAttribute("liMenu", liMenu);

//*** fin login ***

Luego desde la jsp recupero los datos de la sesion e imprimo el menú 
y la identificación del usuario.

... welcome.jsp ...
	< tr >
		< td width="67%" valign="top" class="titulo3" 
>Bienvenido: < br >						
	                
				< % HttpSession userSesion = 
request.getSession(false); % >					
		                
		    <b>< % = userSesion.getAttribute("nombreUsr") % 
>< / b >
		< / td >
	< / tr >
....


... menu.jsp ...
	< % String nombreContexto = request.getContextPath(); % >
	< % HttpSession userSesion = request.getSession(false); % >
	
	< % List liMenu = (List) userSesion.getAttribute("liMenu"); % 
>

	< % for ( int i = 0; i < liMenu.size(); i ++){ % >
			< % String[] sOpcion = (String[]) liMenu.get
(i); % >
			< % if (sOpcion[2]== null){ % >
				makeMenu('< % = sOpcion[0] % >','< % 
= sOpcion[1] % >')
			< % }
			else { % >
				makeMenu('< % = sOpcion[0] % >','< % 
= sOpcion[1] % >', '< % = sOpcion[2]% >', '< % = sOpcion[3] % >')
			< % }
		} % >

... fin menu ....

Hasta aquí no debería haber problema para que todo funcione OK, el 
problema es que, en computadores distintos, con browsers distintos 
(obvio), casi siempre al usuario que se loguea, le muestra los datos 
del usuario que se logeo anteriormente, es como si quedara sucia la 
jsp, ya que al hacer refresh del browser muestra los datos correctos. 
No es caché de browser, ya que son usuarios distintos en computadores 
distintos.
Al imprimir en el log los datos devueltos de la base de datos, veo 
que son los que corresponden, es decir, los del usuario actual, pero 
se imprimen en la web los del usuario anterior.

Qué puedo estar haciendo mal ??
Cómo hago para que la jsp me considere los datos de la sesion que 
corresponde??
Cómo es posible que se estén confundiendo las sesiones??

Los bean spring que corresponden a los Action de Struts 
(org.springframework.web.struts.DelegatingActionProxy) los puse ahora 
como singleton=false, antes los tenía por defecto, pero el problema 
persiste.

Espero alguien me pueda ayudar, no veo cómo arreglarlo.

Gracias.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.