【问题标题】:Tomcat randomly invalidating SessionsTomcat 随机使会话无效
【发布时间】:2014-07-04 14:51:13
【问题描述】:

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

有问题的 webapp 同时使用 Spring 和 Hibernate 框架。其他 webapps 也是如此。这是发生的事情的一个例子。

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

JSESSIONID Matches

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

Session gone in Tomcat Console

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

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

非常感谢任何帮助

【问题讨论】:

标签: java session tomcat


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    以下步骤可能会对您有所帮助:

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

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 2015-02-16
      相关资源
      最近更新 更多