J'utilise RESTEasy 3.1.0.CR3 avec son servlet Tomcat 8.5 dans initialiseur, via des annotations (pas web.xml
):RESTEasy l'application JAX-RS ne pas appeler @PreDestroy
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.1.0.CR3</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.1.0.CR3</version>
</dependency>
J'ai un JAX-RS application que je dois savoir avant qu'il ne soit détruit/désinstallée du récipient, afin que je puisse libérer des ressources (arrêter un fil):
@ApplicationPath("/")
public class MyRESTApplication extends Application {
…
@Override
public Set<Class<?>> getClasses() {
…
}
@Override
public Set<Object> getSingletons() {
…
}
@PreDestroy
public void end() {
//TODO release resources
}
Mais ma méthode end()
ne semble pas être appelé. Est-ce que je fais cela mal? Existe-t-il un meilleur moyen de détecter quand une application JAX-RS est supprimée?
[Je pense que c'est un bug lié] (https://java.net/jira/browse/JERSEY-1982) Et désolé, je suis confondu avec un bean entity. Je ne sais pas si JAX-RS a la méthode PostDestroy – Gatusko
Qu'est-ce qu'un bug Jersey a à faire avec RESTEasy? –
Pouvez-vous créer un référentiel avec un exemple complet? Je ne vois rien de mal avec le code que vous avez donné jusqu'ici. – Adam