scope - 如何在没有 http session 的情况下使用 CDI-@SessionScoped

标签 scope jax-rs java-ee-6 cdi

当没有可用的 http session 时(例如使用 RESTful-WS 时),可以使用 CDI-@Sessionscoped 吗?如果没有,是否有 @SessionScoped 的替代方案?我这样问是因为我需要有一个应用程序状态,但我也被迫使用 JAX-RS。

出于某种原因,我可以在 RESTful-Service 中注入(inject) @SessionScoped beans,但我知道,至少按照惯例,这是不允许的。另外,使用 @SessionScoped 需要在每个客户端请求的 header 中发送 JSessionID-Cookie,并且由于该服务是在非浏览器环境中使用的,因此我无法确定是否可以使用 cookie...

最佳答案

在 REST 环境中,@SessionScoped 将在浏览器客户端的情况下正常工作(如果 REST 服务器支持 session ),但在非浏览器客户端的情况下,将在每次调用时创建新的 bean(如果客户端忽略 cookie)。

也许@ApplicationScoped适合您?

关于scope - 如何在没有 http session 的情况下使用 CDI-@SessionScoped,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485073/

相关文章:

java - 结合地铁和 Jersey

rest - CRUD操作Grails

java - 应用程序未在 websphere 8.5.5 中启动,但在 tomcat 中运行良好

node.js - Node module.exports 像 this 关键字一样引用自己的函数?

Perl:如何使需要脚本中的变量在所需脚本中可用

c - 为什么在访问阻塞/受限内存位置时不会出现段错误?

javascript - AngularJS 中的 $scope 错误

java - 如何将String参数发送到resteasy并转换为json?

ejb - 使用 Java EE 6 进行计划数据库维护(连接生命周期)

jpa-2.0 - JPA条件查询Path.get左联接是否可能