La specifica dice che il contenitore CDI rimuove un SFSB quando il contesto dell'oscilloscopio sta per essere distrutto. Come rimuove esattamente l'EJB? Non sembra che chiami il metodo annotato con @Remove.In che modo CDI rimuove il bean di sessione con stato?
@Stateful
public class CustomerDAOImpl implements CustomerDAO {
@PreDestroy
public void onDestroy() {
//This is getting called as expected
}
@Remove
public void deleteMyBean() {
//This is not getting called!
}
}
Quindi, CDI sta facendo tecnicamente quello che dice la specifica. La domanda è: come riesce a chiedere al contenitore EJB di rimuovere l'istanza? Grazie.
Sì, questo è il comportamento normale. Ma in che modo il contenitore CDI rimuove l'EJB? Sta usando un qualche tipo di API non documentata per chiedere al contenitore EJB di fare la rimozione? – RajV
@RajV Non sono stato in grado di localizzarlo nelle specifiche, ma puoi trovare informazioni utili nell'esercitazione su Java EE, in "Ciclo di vita di un sorso di Stateful Session Bean" all'indirizzo http://docs.oracle.com/javaee/5 /tutorial/doc/bnbmt.html –
@downvoter Cura di spiegare per -1 –