【发布时间】:2013-08-12 14:17:27
【问题描述】:
我有一个会话范围的 CDI bean,我需要以某种方式访问此 bean 的 @PostConstruct 方法中的 HttpServletRequest 对象。可能吗?我试图注入这样一个对象,但结果是:
WELD-001408 Unsatisfied dependencies for type [HttpServletRequest] with qualifiers [@Default] at injection point [[field] @Inject ...]
我在谷歌搜索时了解到,Seam 框架具有这样的功能,但我在 GlassFish 服务器上有一个标准的 Java EE 应用程序。
是否有可能以某种方式将请求传递给 CDI bean 的 @PostConstruct 方法?
【问题讨论】:
-
貌似要访问请求查询字符串参数吧?
-
我要访问 UserPrincipal
-
我已经看到了这个话题,但是@Context 注释使我的 bean 的钝化崩溃了,当我有这个注释时,我不能再注入我的 bean(bean 已经实现了 Serializable)。
-
@Luiggi(和 wojetk)我发现那个副本也很好奇。
@Context注释仅适用于 JAX-RS webservice 类(就像@ManagedProperty仅适用于 JSF 托管 bean 类)。但是,问题中的 nothing 表明 OP 正在使用 JAX-RS,而答案中的 nothing 表明@Context仅限于 JAX-RS Web 服务。然而答案被接受并且OP确认它有效。这要么是一个很大的巧合,而且是一个非常好的盲目猜测,要么是 OP 在撒谎。
标签: java jakarta-ee cdi