Scala和电梯和SessionVar在失去它的内容
题
我有SessionVar这样在电梯:
object MyObject {
object myVar extends SessionVar[Box[MyObject]](Empty)
}
然后,我为myVar的设定值一次:
MyObject.myVar(Full(value))
我的问题是,经过一段时间(1-5分钟)myVar的将失去其价值,也就是说,它会再次有值清空。这不是由于不活动,因为我点击页面不断。我的代码是不是设定以空。在这1-5分钟的myVar的将正常工作。日志不包含相关的消息。
我试图关机方法添加到myVar的,但它是没有得到调用。
override protected def onShutdown(session: CleanUpParam): Unit = {
Log.error("shutdown executed")
}
我经由mvn jetty:run
命令运行在码头提升。我使用电梯的1.1快照。我不明确创建任何类型的cookie或会话的。
任何想法发生了什么?这可能是因为会话过期或无效莫名其妙,但为什么和谁?
我甚至试图与(LiftRules.enableLiftGC = false
)以禁用liftGC但这并不影响
解决方案
我想象的问题是,同时点击你身边,你不小心创建一个新的会话。这可以解释为什么你没有得到会话关闭事件:旧的会话仍然存在,但你不再使用它。我建议你打印出会话ID对每个请求,看看它的变化。
您可能会失去会话,因为会话cookie到期,或因为你不是URL编码的一些链接(见HttpServletResponse.encodeURL),或者因为你浏览你的应用程序上下文路径之外。
其他提示
什么是你的会话过期时间在LiftRules设置?
不隶属于 StackOverflow