Pregunta

Tengo SessionVar como este en Ascensor:

object MyObject {
   object myVar extends SessionVar[Box[MyObject]](Empty)
}

Entonces me puse valor una vez para miVar:

 MyObject.myVar(Full(value))

Mi problema es que después de algún tiempo (1-5 minutos) miVar perderá su valor, es decir, que tendrá un valor vacío de nuevo. Esto no se debe inactividad ya que estoy haciendo clic páginas constantemente. Mi código no es la creación de valor a vacía. Durante este 1-5 minutos la miVar funcionará correctamente. Los registros no contienen mensajes relacionados.

He intentado añadir el método de apagado para miVar, pero no está recibiendo llamadas.

 override protected def onShutdown(session: CleanUpParam): Unit = {
   Log.error("shutdown executed")
 }

Me postulo Ascensor en el embarcadero a través de comandos mvn jetty:run. Estoy usando 1,1-instantánea de elevación. No estoy creando explícitamente cualquier tipo de galleta o sesión.

Alguna idea de lo que está sucediendo? Podría ser que la sesión caduca o invalida alguna manera, pero ¿por qué y por quién?

Yo incluso trató de desactivar con liftGC (LiftRules.enableLiftGC = false), pero que no afecta.

¿Fue útil?

Solución

Me imagino que la cuestión es que mientras hace clic en todo, va a crear accidentalmente una nueva sesión. Eso explicaría por qué no está obteniendo el evento de cierre de sesión: todavía existe la sesión anterior, pero ya no lo está utilizando. Sugiero que imprima el identificador de sesión con cada solicitud y ver si cambia.

Se puede haber perdido la sesión debido a que la cookie de sesión está por expirar, o porque usted no es el URL que codifica algunos enlaces (ver HttpServletResponse.encodeURL), o porque se navega fuera de ruta de contexto de la aplicación.

Otros consejos

¿Qué es la sesión de tiempo de caducidad establecido en LiftRules?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top