Интересно.EJB-объектам сессионной области вызывается @Predestroy
, когда происходит событие закрытия сеанса.Если контейнер никогда не отправляет это событие, Spring не будет проинформирован.Я не уверен, является ли это ошибкой или нет, и если да, то когда это ошибка в Spring или Tomcat.Последнее кажется более вероятным, но я не знаю, обязан ли это делать контейнер сервлетов.
Если для вас это ограничитель показа, вы можете подумать о том, чтобы bean-объект scoped зарегистрировался всинглтон-регистратор во время его @PostConstruct
и отмена регистрации на @PreDestroy
.Если регистратор выключен, он может распространить это событие на все оставшиеся сессионные компоненты, все еще зарегистрированные в нем.
Не идеальное, но прагматичное решение.