Tomcat随机使Sessions无效

时间:2014-05-15 23:35:19

标签: java session tomcat

如果强制重新登录,我的tomcat应用程序会随机使会话信息和用户无效。仅当webapp与其他特定Web应用程序一起部署时才会发生这种情况。当它自己运行而没有运行其他应用程序时,它运行正常。某处有冲突,但我无法找到它。

有问题的webapp使用Spring和Hibernate框架。其他webapps也可以。这是一个发生了什么的例子。

当我第一次登录时,一切都很好。

JSESSIONID Matches

JSESSONID在cookie和管理控制台中都匹配。但是,在使用该应用程序时,它会随机终止会话。

Session gone in Tomcat Console

当我发出另一个Web请求时,会显示登录页面并生成一个新的JSESSIONID。

根据我所做的研究,只要调用JSP文件并且没有当前会话,就会生成JSESSIONID。我不明白为什么会话被无效,但只有当它与其他应用程序一起运行时。我已经检查了内存使用情况,我没有注意到内存丢失和被无效的会话之间的相关性。我想这意味着Tomcat不会清除会话以释放内存。

非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

检查在其他Web应用程序中是否未以编程方式配置session.setMaxInactiveInterval()。这会引起你描述的行为。

此方法与您在web.xml文件中找到的会话超时值略有不同。 (Here's a good rundown。)

答案 1 :(得分:0)

以下步骤可以帮助您:

  1. 您确定没有覆盖默认的会话超时值,请在运行时检查您的会话超时。
  2. 来自tomcat manager页面的
  3. (〜/ manager / html / list)查看您的Web应用程序会话的状态,然后按应用程序会话列的值。