В спецификации указано, что контейнер CDI удаляет SFSB, когда контекст области видимости будет уничтожен. Как он точно удаляет EJB? Кажется, он не вызывает метод, аннотированный с помощью @Remove.Как CDI удаляет сессионный компонент с состоянием?
@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!
}
}
Таким образом, CDI технически выполняет то, что говорит спецификация. Вопрос в том, как справиться с вопросом, чтобы контейнер EJB удалял экземпляр? Благодарю.
Да, это нормальное поведение. Но как контейнер CDI удаляет EJB? Использует ли какой-либо недокументированный API запрос контейнера EJB для удаления? – RajV
@RajV Мне не удалось найти его в спецификации, но вы можете найти полезную информацию в учебном пособии по Java EE, в разделе «Жизненный цикл состояния сессионного бина» на http://docs.oracle.com/javaee/5 /tutorial/doc/bnbmt.html –
@downvoter Ухаживать за -1 –