@PreDestroy никогда не вызывал @ViewScoped

У меня есть @ViewScoped боб, который имеет метод с @PreDestroy аннотация, которая должна обеспечить закрытие некоторых удаленных подключений. Однако метод не вызывается, когда пользователь уходит.

Что-то можно сделать неправильно? Нужно ли что-нибудь регистрировать, чтобы это работало?

Это простой публичный метод (void) это не исключение.

Я использую JSF 2 (MyFaces) с Tomcat 7.0.12. Может ли это быть проблемой с Tomcat?

ОБНОВИТЬ

@PostConstruct аннотация работает отлично.

1 ответ

Решение

Это известная проблема, которая, к сожалению, не тривиальна для решения, не позволяя осуществлять всю навигацию по рассматриваемому компоненту вида. См. Также выпуск JSF-impl 1839. Это не распространяется только на случаи, когда пользователь изменяет URL-адрес в адресной строке браузера или закрывает окно / вкладку. Их @PreDestroy также не будет вызываться, когда сеанс будет уничтожен. Однако был опубликован запрос на усовершенствование спецификации, чтобы заставить висячие представления уничтожать во время уничтожения сеанса в любом случае: JSF-spec проблема 905.

Другие вопросы по тегам