问题描述
可以(如果是的话,怎么样?)在EJB模块中使用 javax.naming.Context#lookup
查找CDI托管的bean?
Can I (and if so, how?) lookup CDI managed beans using javax.naming.Context#lookup
in EJB module?
我使用的是GlassFish v3。我想我可以使用 @Named
,但是什么是CDI托管bean的JNDI名称?我想从非托管POJO中查找它们,所以我不能使用 @Inject
。
I'm using GlassFish v3. I suppose that I can use @Named
, but what is JNDI name of CDI managed bean? I want to lookup them from unmanaged POJOs so I can't use @Inject
.
推荐答案
您可以通过JNDI( java:comp / BeanManager
)查找 BeanManager
,然后使用JSR- 299 API挂起了 BeanManager
,以获得对托管bean的上下文引用。
You can lookup the BeanManager
via JNDI (java:comp/BeanManager
) then use the JSR-299 API hung off of the BeanManager
to get a contextual reference to a managed bean.
JSR-299托管bean不可用于直接JNDI查找。
JSR-299 managed beans are not available for direct JNDI lookup.
这篇关于可以(以及如何)使用EJB模块中的javax.naming.Context#lookup查找CDI托管的bean?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!