java - JAX-RS 资源的不同 session ID

标签 java jax-rs wildfly-8

我在使用 WildFly 8.x 时遇到了非常奇怪的行为(也使用 8.1 和 8.0 进行了测试)。如果我将 WAR 部署为 ROOT(在 jboss-web.xml 中将“/”设置为上下文根),我的 JAX-RS 资源类将具有不同的 session ID(每个资源类将具有唯一的 session ID)。但事实上,如果我将“/”以外的任何其他内容设置为上下文根,一切都会按我最初的预期运行(每个 JAX-RS 资源类共享相同的 session )。 我知道 REST 服务是无状态的,我不必担心 session ,但我很好奇为什么它会这样。有人有什么想法吗?

谢谢!

这是一个示例最小项目,您可以在其中重现此问题:https://github.com/aberkes/cdi-sessionscoped-bean-demo

最佳答案

这个想法是,默认情况下,如果您部署到 ROOT,jboss 不会使用固定的 cookie 路径参数。这是为了当您有其他应用程序在不同的子文件夹中运行并且需要它们自己的独立 session 时的情况。 要更改此行为,您可以使用

<session-config>
<cookie-config>
<path>/</path>
</cookie-config> 
</session-config>

web.xml 中的参数。那么所有的jsessions都会被绑定(bind)到根路径。

关于java - JAX-RS 资源的不同 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25973944/

相关文章:

java - 是否有基于非 Id 字段合并的 JPA 功能?

java - 如何保护 Jersey 服务器上的 xml 请求?

java - Ehcache RMI 复制仅以一种方式工作

java - ActiveMQ 消息出队但未使用

java - Spring & Wildfly 异步请求

java - 如何修改 javax.json.JsonObject 对象?

java - 禁止 Spring 接受 POST 参数作为查询参数

java - 具有相同方法的多个接口(interface)最终由类实现

java - JPA 为每个请求创建实体管理器工厂?

xml - 400 对剩余应用程序/xml 的错误请求