我可以(以及如何)在EJB模块中使用javax.naming.Context#lookup查找CDI托管的bean吗?


问题内容

我可以(如果可以的话,如何?)查找javax.naming.Context#lookup在EJB模块中使用的CDI托管bean ?

我正在使用GlassFish
v3。我想我可以使用@Named,但是CDI托管bean的JNDI名称是什么?我想从非托管POJO查找它们,所以我不能使用@Inject


问题答案:

您可以BeanManager通过JNDI(java:comp/BeanManager)查找,然后使用挂起的JSR-299 API
BeanManager来获取对托管bean的上下文引用。

JSR-299托管bean不可用于直接JNDI查找。