【问题标题】:Spring web flow -- Flow gets resetSpring Web 流——流被重置
【发布时间】:2016-10-10 18:22:00
【问题描述】:

我们的流程实际上在较低的开发环境中运行良好,但在测试环境中偶尔会出现故障(5% 的时间)。所以我可以看到代码没有问题。 (测试环境有两个appservers)。顺便说一句,我们正在使用 Websphere 应用服务器

问题是,每当我们尝试浏览流程时,流程会突然重置,并且用户会进入第一页。但是在 firebug 中调试,我们可以看到,只要 JSESSIONID 发生变化,流程就会重置。我们的应用程序有 2 个 WAR。因此,当页面加载时,图像、js、css 在一个中,而 java 控制器在另一个中。那么这是否会导致损坏/修改 JSESSIONID 时出现任何问题。

无法真正弄清楚 cookie 更改的原因。请帮忙。谢谢!

【问题讨论】:

    标签: java spring spring-webflow jsessionid


    【解决方案1】:

    JSESSIONID cookie 是 servlet 会话 cookie,它不应在一个会话期间更改。

    JSESSIONID cookie 是由 servlet 容器在第一次调用 request.getSession() 时创建的,看看这个 answer

    在这种情况下,似乎一些 servlet 请求转到一个 WAR,而其他请求转到另一个,这会导致生成两个不可互换的 JSESSIONID cookie。

    一种解决方案是将所有代码部署在同一个 WAR 中,以便只创建一个 JSESSION cookie。

    另一种解释是,在测试服务器中配置了一个非常短的会话超时,这会导致会话在用户导航时被重置。

    还要检查 web.xml 中的 WAR 和服务器中的 spring 安全配置,以查看测试中会话超时设置是否不同。有时构建过程是特定于环境的并会修改设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 2013-04-17
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多