如果强制重新登录,我的tomcat应用程序会随机使会话信息和用户无效。仅当webapp与其他特定Web应用程序一起部署时才会发生这种情况。当它自己运行而没有运行其他应用程序时,它运行正常。某处有冲突,但我无法找到它。
有问题的webapp使用Spring和Hibernate框架。其他webapps也可以。这是一个发生了什么的例子。
当我第一次登录时,一切都很好。
JSESSONID在cookie和管理控制台中都匹配。但是,在使用该应用程序时,它会随机终止会话。
Session gone in Tomcat Console
当我发出另一个Web请求时,会显示登录页面并生成一个新的JSESSIONID。
根据我所做的研究,只要调用JSP文件并且没有当前会话,就会生成JSESSIONID。我不明白为什么会话被无效,但只有当它与其他应用程序一起运行时。我已经检查了内存使用情况,我没有注意到内存丢失和被无效的会话之间的相关性。我想这意味着Tomcat不会清除会话以释放内存。
非常感谢任何帮助
答案 0 :(得分:1)
检查在其他Web应用程序中是否未以编程方式配置session.setMaxInactiveInterval()
。这会引起你描述的行为。
此方法与您在web.xml
文件中找到的会话超时值略有不同。 (Here's a good rundown。)
答案 1 :(得分:0)
以下步骤可以帮助您: