java - Spring Web Flow——流程被重置

标签 java spring spring-webflow jsessionid

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

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

不太明白为什么 cookie 会被改变。请帮忙。谢谢!

最佳答案

JSESSIONID cookie 是 servlet session cookie,在一个 session 期间不应更改。

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

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

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

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

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

关于java - Spring Web Flow——流程被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22266876/

相关文章:

java - 从 Java 中的 RESTful Web 服务方法返回一个整数

java - Spring RestController + Junit 测试

java - 是否必须将我的所有模板 thymeleaf 放在目录 "rc/main/resources/templates"中?

java - 为什么 Spring 不将我的 @Autowired 成员连接到依赖的 jar 中?

java - spring框架如何管理循环依赖

java - jsf 2.0 + springwebflow 2.0 中不受支持的异常

java - 如何将 REST channel 添加到 Spring Webflow 应用程序?

java - 使用 bean 定义配置文件的 Spring 3.1 bean 可见性

java - 尝试执行 junit 测试时出错

java - 通用类型转换/实例检查/排除类型参数