本文介绍了可以(以及如何)使用EJB模块中的javax.naming.Context#lookup查找CDI托管的bean?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可以(如果是的话,怎么样?)在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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-25 01:24