我怎么可以注入的依赖一样@EJB
,@PersistenceContext
,@Inject
,@AutoWired
,等的@FacesConverter
?在我的具体情况下,我需要通过@EJB
以下方式注入EJB :
@FacesConverter
public class MyConverter implements Converter {
@EJB
protected MyService myService;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
// myService.doSomething
}
}
Run Code Online (Sandbox Code Playgroud)
然而,它没有被注射并且仍然存在null
,导致NPE.看来,@PersistenceContext
和@Inject
也不起作用.
如何在转换器中注入服务依赖项以便我可以访问数据库?
我有一个无状态的EJB加入我的数据库.我需要在JSF 2转换器中使用此bean来从String值参数中检索实体对象.我正在使用JEE6和Glassfish V3.
@EJB
注释不起作用并获得NPE,因为它位于faces上下文中,并且它无法访问EJB上下文.
我的问题是:是否仍然可以使用@Resource
其他注释或JNDI查找来注入此bean ,还是需要解决方法?
解
像这样执行JNDI查找:
try {
ic = new InitialContext();
myejb= (MyEJB) ic
.lookup("java:global/xxxx/MyEJB");
} catch (NamingException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)