当拦截器存在时EJB注入失败
问题描述:
在JSF应用程序中使用DI和拦截器时,我遇到了一个问题。当拦截器存在时EJB注入失败
我有一个支持bean,它观察JSF事件并执行一些初始数据查找。
<f:event type="preRenderView" listener="#{myBean.loadData}"/>
的bean是相当向前基本上是这样的:在JSF页面豆如下注册为事件侦听器
@Named
@RequestScoped
public class MyBean {
@EJB
private SomeDao dao;
public void loadData() { ... }
public void performSomeStuff() { ... }
}
的DAO正确注射,一切都很好,直到这里。现在我想执行一些在拦截器中完成的延迟加载(特定的代码并不重要,因为当拦截器在调用上下文中进行时,同样的行为出现)。因此,呼吁performSomeStuff()之前,我想,以确保所有数据被加载:
@Interceptors(MyInterceptor.class)
public void performSomeStuff() { ... }
此时EJB没有得到任何注入更长(NPE显示出来...) - 任何想法这个?
设置:
- 的GlassFish 3.0.1
- WELD-000900 1.0.1(SP3)
- 钻嘴鱼科2.0.2(FCS B10)
提前感谢!
问候, 亚历
答
如果你想取得进步,你可以尝试使用299基拦截器与拦截器结合,而不是与EJB风格的束缚英寸如果该地区存在漏洞,稍后再运行拦截器可能会提供一些解决办法。
和你有没有尝试注入另一个组件(非ejb)?它工作吗? – Bozho 2010-12-07 21:51:21