Penso di avere qui un problema di comprensione di base e spero che qualcuno possa spiegarmelo.JAVA EE 6 istanze di condivisione tra EJB stateful
consente di dire che abbiamo un EJB_A stateful e un EJB_B stateful e un ManagedbeanA sessionscoped:
@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;
}
Nel ManagedBeanA, viene creata l'EJB_A. Ora, quando utilizzo EJB_B, che ha EJB_A come proprietà, viene creata una nuova istanza di EJB_A all'interno di EJB_B. Non è la stessa istanza di EJB_A creata precedentemente in ManagedBeanA.
Non lo capisco, perché ho pensato che l'intero punto degli EJB di stato sia, che per ogni cliente solo una istanza sia creata e condivisa e gestita dal bean EJB. Qualcuno può spiegarmelo per favore? E per favore spiega anche come posso ottenere che la stessa istanza di un EJB sia condivisa da più EJB diversi?
Grazie
Quando si dice " Ora quando uso EJB_B "cosa intendi con questo? Come hai verificato che non si tratti della stessa istanza? –
Quando instianciate EJB_B e guardo le proprietà (ad esempio una proprietà stringa) di EJB_A, le proprietà del bean EJB_A sono diverse dalle proprietà dell'EJB_A che è stata instanciata dal bean gestito. – user1727072
Dove si "instanciate" EJB_B; all'interno di un altro ManagedBean o di un client Java (ricerca remota)? –