Jakarta ee EJB-可以在bean中使用bean吗

Jakarta ee EJB-可以在bean中使用bean吗,jakarta-ee,ejb,javabeans,Jakarta Ee,Ejb,Javabeans,例如,我可以执行以下操作吗 @Stateless @LocalBean public class MyBean extends AbstractFacade<MyBeanEntity> { @PersistenceContext(UnitName='myPU") private EntityManager em; @EJB private MyBean2 bean2; @EJB private MyBean3 bean3; ..

例如,我可以执行以下操作吗

@Stateless
@LocalBean
public class MyBean extends AbstractFacade<MyBeanEntity>
{   @PersistenceContext(UnitName='myPU")
    private EntityManager em;

    @EJB
    private MyBean2 bean2;
    @EJB
    private MyBean3 bean3;

    ....

}
@无状态
@本地豆
公共类MyBean扩展了AbstractFacade
{@PersistenceContext(UnitName='myPU”)
私人实体管理者;
@EJB
私人MyBean2 bean2;
@EJB
私人MyBean3 bean3;
....
}
对于MyBean2和MyBean3,它们看起来是这样的

public class MyBean2 extends AbstractFacade<MyBean2Entity>
{   @PersistenceContext(UnitName='myPU")
        private EntityManager em;

        ....

}

public class MyBean3 extends AbstractFacade<MyBean3Entity>
{   @PersistenceContext(UnitName='myPU")
    private EntityManager em;

        ....

}
公共类MyBean2扩展了AbstractFacade
{@PersistenceContext(UnitName='myPU”)
私人实体管理者;
....
}
公共类MyBean3扩展了AbstractFacade
{@PersistenceContext(UnitName='myPU”)
私人实体管理者;
....
}

我之所以需要这样做,是因为myBean需要调用myBean2和myBean3中实现的一些业务逻辑。但我不确定这是否会起作用,或者整个“@EJBBean注入是如何实现的“在这种情况下有效。有什么想法吗?非常感谢

确保在另一个EJB中使用@EJB不会有问题。确保在第二个bean类的顶部有@Local。

谢谢Quynh。你能解释一下我应该如何/在哪里使用这个@Local注释以及为什么我需要它吗?实际上,这是我的错。您不需要“@Local”注释,因为您在本地使用EJB,而不是将其公开给远程服务,在远程服务中您需要指定“@Local”或“@remote”。在您的案例场景中,只需在MyBean2中添加“@Stateless”。然后在MyBean1中,只需在MyBean声明上方执行“@EJB”。