@PreDestroy nie aufgerufen, den @ViewScoped
Ich habe eine @ViewScoped
bean, hat eine Methode mit einer @PreDestroy
Anmerkung, sollte sicherstellen, dass bestimmte remote-verbindungen geschlossen werden. Jedoch ist die Methode nicht aufgerufen, wenn der Benutzer navigiert Weg.
Gibt es irgendetwas, was man falsch machen kann? Muss ich mich registrieren, überall und von allem, damit es funktioniert?
Es einfach eine öffentliche Methode (void
) wirft keine exception.
Ich bin mit JSF 2 (MyFaces) mit Tomcat 7.0.12. Könnte es ein problem mit Tomcat?
UPDATE
Den @PostConstruct
annotation funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein bekanntes Problem und leider nicht trivial zu lösen, ohne dass alle die navigation durch die anzeigen scoped bean in Frage. Siehe auch JSF-impl Thema 1839. Dies gilt nur dann nicht, decken die Fälle, wo den Endanwender ändert sich die URL in der browser-Adressleiste oder schließt das Fenster/tab. Ihre
@PreDestroy
wird auch nicht aufgerufen werden, wenn die session zerstört. Ein enhancement request für die Spezifikation wurde allerdings geschrieben, um die baumelnden Ansichten zu zerstören, während der Sitzung zerstören jedenfalls: JSF-spec-Ausgabe 905.@PreDestroy
nicht genannt werden, können Risiko-Ressourcen-Lecks, wenn die@PreDestroy
Umsetzung ist dabei einige resource cleanup.