我想我在这里有一个基本的理解问题,我希望有人能向我解释这一点。JAVA EE 6共享有状态EJB之间的实例
假设我们有一个状态EJB_A和状态EJB_B和sessionscoped ManagedbeanA:
@Stateful
@LocalBean
public class EJB_A {
}
@Stateful
@LocalBean
public class EJB_B {
@EJB
EJB_A ejb;
}
@ManagedBean
@SessionScoped
public class ManagedBeanA {
@EJB
EJB_A ejb;
}
在ManagedBeanA,创建EJB_A。现在,当我使用具有EJB_A作为属性的EJB_B时,在EJB_B中创建了一个新的EJB_A实例。它不是在ManagedBeanA中创建的同一个EJB_A实例。
我不明白,因为我认为有状态EJB的全部意义在于,对于每个客户端,只有一个实例由EJB容器创建并共享和管理。有人可以向我解释这个吗?还请解释我如何才能实现一个EJB的同一个实例被多个其他EJB共享?
谢谢
“现在,当我使用EJB_B“你是什么意思?你是如何验证它不是同一个实例的? –
当我投入EJB_B并查看EJB_A的属性(例如字符串属性)时,EJB_A bean的属性与受管理bean所实例化的EJB_A的属性不同。 – user1727072
你在哪里'instanciate'EJB_B;在另一个ManagedBean或Java客户端(远程查找)中? –