使用mappedname在另一个bean中注入ejb bean而不使用name

时间:2012-04-18 16:27:35

标签: java-ee dependency-injection ejb jndi lookup

我在glassfish的EAR中有两个ejb,它们都实现了远程接口,为什么它们都为它们分配了一个映射名称,用于客户端jndi查找。

现在我想把一个注入另一个。 我在我的ejb中成功注入了一个没有任何带注释名称的Singleton Bean 但是这里没有用。

是否有必要在此处进行JNDI查找,即使是本地查找?

@Stateless(mappedName = "ChildBean")
public class ChildBean implements ChildBeanRemote {}

@Stateless(mappedName = "ParentBean")
public class ParentBean implements ParentBeanRemote
{
    @EJB
    private ChildBean childBean;
}

1 个答案:

答案 0 :(得分:1)

我认为应该是

@Stateless(mappedName = "ChildBean")
public class ChildBean implements ChildBeanRemote {}

@Stateless(mappedName = "ParentBean")
public class ParentBean implements ParentBeanRemote
{
    @EJB
    private ChildBeanRemote childBean; //You should use the interface and not the bean
}