我有CDI RequestScoped bean以及更多不是bean的java类。在任何这些java类中,我想使用我的bean,但它可以注入(为什么?我不知道)一种可能的方法是使用这个代码:
final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
final Context context = new InitialContext(jndiProperties);
EntityManagment em = (EntityManagment) context.lookup("java:app/drools-guvnor/EntityManagment");
如果我的bean是无状态和本地bean,那么效果很好。我能为无国籍和本地人做些什么呢?
答案 0 :(得分:1)
CDI没有JNDI-Name。
您可以自己注册它们,也可以创建一个已注入对象的EJB。然后,您可以查找此EJB并从那里获取您注入的对象。