Ich verwende Resteasy 3.1.0.CR3 mit Servlet initializer in Tomcat 8.5, über Annotationen (keine web.xml
):Resteasy JAX-RS-Anwendung nicht @PreDestroy Aufruf
<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>
Ich habe einen JAX-RS Anwendung, die ich wissen müssen, bevor es aus dem Behälter zerstört/deinstalliert wird, so dass ich einige Ressourcen freigeben kann (Stop einen Thread):
@ApplicationPath("/")
public class MyRESTApplication extends Application {
…
@Override
public Set<Class<?>> getClasses() {
…
}
@Override
public Set<Object> getSingletons() {
…
}
@PreDestroy
public void end() {
//TODO release resources
}
Aber meine end()
Methode scheint nicht aufgerufen werden. Mache ich das falsch? Gibt es einen besseren Weg, um zu erkennen, wann eine JAX-RS-Anwendung abgebaut wird?
[Ich denke, das ist ein Fehler im Zusammenhang] (https://java.net/jira/browse/JERSEY-1982) Und tut mir leid, ich bin verwirrt mit einer Entity Bean. Ich weiß nicht, ob JAX-RS die Methode PostDestroy hat – Gatusko
Was hat ein Jersey Bug mit RESTEasy zu tun? –
Können Sie ein Repository mit einem vollständigen Beispiel erstellen? Ich kann nichts sehen, was mit dem Code, den Sie bisher angegeben haben, nicht stimmt. – Adam