java - 当拦截器存在时,EJB 注入(inject)失败

标签 java jsf proxy interceptor cdi

我在 JSF 应用程序中使用 DI 和拦截器时遇到问题。

我有一个支持 bean,它观察 JSF 事件并执行一些初始数据查找。在 JSF 页面中,bean 被注册为事件监听器,如下所示:

<f:event type="preRenderView" listener="#{myBean.loadData}"/>

这个 bean 非常前卫,看起来基本上是这样的:

@Named
@RequestScoped
public class MyBean {

    @EJB
    private SomeDao dao;

    public void loadData() { ... }

    public void performSomeStuff() { ... }

}

dao 已正确注入(inject),直到这里一切都很好。现在我想执行一些在拦截器内完成的延迟加载(特定代码并不重要,因为当拦截器仅在调用上下文上继续时会出现相同的行为)。因此,在调用 PerformSomeStuff() 之前,我想确保所有数据均已加载:

    @Interceptors(MyInterceptor.class)
    public void performSomeStuff() { ... }

此时,EJB 不再被注入(inject)(NPE 出现...) - 对此有什么想法吗?

设置:

  • 玻璃鱼3.0.1
  • WELD-000900 1.0.1 (SP3)
  • Mojarra 2.0.2 (FCS b10)

提前致谢!

问候, 亚历克斯

最佳答案

如果您想取得进展,您可以尝试使用与拦截器绑定(bind)绑定(bind)的基于 299 的拦截器,而不是 EJB 样式。如果该区域存在错误,让拦截器稍后运行可能会有所缓解。

关于java - 当拦截器存在时,EJB 注入(inject)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4381909/

相关文章:

JavaFX : How to bind multiple properties in a list?

java - 如何检索数据库中的行并将其转换为 Spring 中的对象?

java - 从给定节点提取子节点数据

java - JSF 在验证异常后设置 div 类

java - ]]> &lt;![CDATA[ 分散在转换后的 xml 文档上

javascript - selectBooleanCheckbox 中 JavaScript 函数的参数损坏

java - JSF Bean 属性未更新

ruby - 在 ruby​​ 中为 selenium chrome 驱动程序设置代理

proxy - 建立互联网连接后 systemd 启动守护进程

linux VMware机器上的Docker : error with apt-get and proxy