Ich denke, ich habe ein grundlegendes Verständnis Problem hier und ich hoffe, dass jemand mir das erklären kann.JAVA EE 6 teilen Instanzen zwischen Stateful EJBs
Können sagen, wir haben eine Stateful EJB_A und eine Stateful EJB_B und 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;
}
Im ManagedBeanA, die EJB_A erstellt wird. Wenn ich nun das EJB_B verwende, welches das EJB_A als Eigenschaft hat, wird eine neue Instanz des EJB_A innerhalb des EJB_B erzeugt. Es ist nicht dieselbe Instanz von EJB_A, die zuvor in ManagedBeanA erstellt wurde.
Ich verstehe das nicht, weil ich dachte, der ganze Punkt von Stateful EJBs ist, dass für jeden Client nur eine Instanz erstellt und vom EJB-Container geteilt und verwaltet wird. Kann mir bitte jemand das erklären? Und erklären Sie bitte auch, wie ich erreichen kann, dass die gleiche Instanz eines EJB von mehreren anderen EJBs geteilt wird?
Danke
Wenn Sie sagen " Jetzt, wenn ich das EJB_B benutze: "Was meinst du damit? Wie haben Sie festgestellt, dass es sich nicht um dieselbe Instanz handelt? –
Wenn ich EJB_B instianziiere und die Eigenschaften (z. B. eine Zeichenfolgeneigenschaft) von EJB_A ate, unterscheiden sich die Eigenschaften der EJB_A-Bean von den Eigenschaften der EJB_A, die von der verwalteten Bean instanziiert wurden. – user1727072
Wo "instanziieren" Sie EJB_B; in einem anderen ManagedBean oder einem Java-Client (Remote-Lookup)? –