Question

Je SessionVar comme ça dans l'ascenseur:

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

Alors je mets la valeur une fois pour maVar:

 MyObject.myVar(Full(value))

Mon problème est que, après un certain temps (1-5 minutes) maVar perd sa valeur, qui est, il aura une valeur vide à nouveau. Ce n'est pas en raison d'inactivité depuis que je suis en permanence pages vous cliquez sur. je crée mon code n'est pas la valeur à vider. Au cours de cette 1-5 minutes le maVar fonctionnera correctement. Les journaux ne contiennent pas de messages connexes.

J'ai essayé d'ajouter la méthode d'arrêt à maVar, mais il est pas appelé.

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

Je suis en cours d'exécution dans la jetée Ascenseur via la commande mvn jetty:run. J'utilise 1.1-SNAPSHOT de Lift. Je ne crée pas explicitement tout type de cookies ou de la session.

Toutes les idées ce qui se passe? Il se pourrait que la session expire ou invalident en quelque sorte, mais pourquoi et par qui?

J'ai même essayé de désactiver liftGC avec (LiftRules.enableLiftGC = false), mais qui ne touche pas.

Était-ce utile?

La solution

Je suppose que le problème est que tout en cliquant autour, vous créez accidentellement une nouvelle session. Cela expliquerait pourquoi vous n'obtenez pas l'événement d'arrêt de session: l'ancienne session existe toujours, mais vous n'êtes plus l'utiliser. Je vous suggère d'imprimer l'ID de session à chaque demande et voir si elle change.

Vous pourriez perdre la session parce que le cookie de session arrive à son terme, ou parce que vous n'êtes pas codant URL des liens (voir HttpServletResponse.encodeURL), ou parce que vous naviguez en dehors du chemin du contexte de votre application.

Autres conseils

Quelle est votre session heure d'expiration définie dans LiftRules?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top