当没有可用的 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/