我可以(以及如何)在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查找。