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