@PreDestroy не вызывается в ресурсе JAX-RS, как мне закрыть/освободить ресурсы?
У меня есть класс Java, помеченныйjakarta.ws.rs-api
аннотации, которые являются классом ресурсов отдыха. Я создал службу исполнителя как часть класса ресурсов (который содержит методы с аннотациями, такими как @GET, @PUT и т. д.), и ищу способ закрыть эту службу исполнителя после завершения работы контейнера сервлетов (причал с использованием Джерси). Я наткнулся на аннотацию @PreDestroy, использовал ее в классе ресурсов, но она не вызывается при корректном завершении работы контейнера.
Есть ли способ закрыть ресурсы, такие как служба-исполнитель, в классе ресурсов с помощью предопределенного хука или аннотации? Спасибо!
1 ответ
Одним из способов прослушивания «завершения работы» контейнера может быть использование реализации интерфейса ServletContextListener и написание логики закрытия службы исполнителя с помощью метода contextDestroyed(ServletContext).