【发布时间】:2012-05-05 05:30:51
【问题描述】:
在应用程序中,一旦用户模式发生变化,我们就会切换会话。
所以基本上我们有这样的东西:
request.getSession(false).invalidate();
request.getSession(true);
现在出现了问题:超时后,会话没有被删除。在调试了一些内部代码后,我发现在org.eclipse.jetty.server.session.AbstractSession.timeout() 中,如果_requests > 0 则不会删除会话。并且_requests 大于零,因为在org.eclipse.jetty.server.session.SessionHandler.doScope(String, Request, HttpServletRequest, HttpServletResponse) 中complete() 在access 会话上运行会增加而相同的会话会减少,即使在调用期间实际会话已被替换!
有人遇到过同样的问题并设法解决了吗?
更新:我创建了一个解决方法。请参阅下面接受的答案。
更新:泽西社区中的错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=377610
【问题讨论】:
-
您在这里与哪个会话管理器一起工作?哈希、jdbc、mongodb、其他?
标签: java session jetty session-state session-timeout