我想我在這裏有一個基本的理解問題,我希望有人能向我解釋這一點。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客戶端(遠程查找)中? –