Myślę, że mam tutaj podstawowy problem zrozumienia i mam nadzieję, że ktoś może mi to wyjaśnić.JAVA EE 6 współudział między stanową EJB
Powiedzmy mamy pełnostanowego EJB_A i stanowe EJB_B i 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;
}
W ManagedBeanA The EJB_A jest tworzony. Teraz, gdy używam EJB_B, który ma EJB_A jako właściwość, w EJB_B tworzona jest nowa instancja EJB_A. To nie jest to samo wystąpienie EJB_A, które zostało wcześniej utworzone w ManagedBeanA.
Nie rozumiem tego, ponieważ uważałem, że cały stan stanowych EJB polega na tym, że dla każdego klienta tworzone jest tylko jedno wystąpienie, które jest współdzielone i zarządzane przez kontener EJB. Czy ktoś może mi to wyjaśnić? I proszę wyjaśnić, w jaki sposób mogę osiągnąć, że to samo wystąpienie EJB jest współdzielone przez wiele innych EJB?
Dziękuję
Kiedy mówisz " Teraz, kiedy używam EJB_B "co masz na myśli? Jak zweryfikowałeś, że to nie to samo wystąpienie? –
Po wysłaniu instancji EJB_B i przejrzeniu właściwości (na przykład właściwości łańcuchowej) EJB_A, właściwości komponentu bean EJB_A różnią się od właściwości obiektu EJB_A, który został zainicjowany przez zarządzany komponent bean. – user1727072
Gdzie "zainicjować" EJB_B; w innym ManagedBean lub Java Client (wyszukiwanie zdalne)? –