Hallo zusammen,
obwohl ich im Java Umfeld schon mehr als 10 Jahre unterwegs bin, fange ich erst gerade an mich mit dem Thema JSP, Servlets und Struts2 zu beschäftigen. Meine erste kleine Struts2 Anwendungen habe ich bereits fertig. Nun bin ich über das Problem gestolpert, dass ich gerne gewusst hätte, wann meine WAR Datei deployt bzw. undeployt wird. Das wäre interessant für Initialisierung und Deinitalisierung von bestimmten Dingen (Persistenz Schicht, Business Logic, usw.). In meiner Struts2 Anwendung war das kein Problem, da ich Jetty verwendet habe und ich die ganzen Sachen außerhalb initialisiert und deinitalisiert habe. Aber die Konstellation wird es nicht bei jedem Projekt geben.
Nachdem ich etwas im Internet gesucht habe, bin ich über folgendes Interface gestolpert: ServletContextListener
Wenn ich die folgenden Seiten richtig verstehe:
How to Initialize a Database on Application Startup.
MBeans and Tomcat: A HOWTO Guide for Managing YOUR Application
muss ich eine Ableitung dieses Interfaces in meiner WAR Datei haben und dann diesen Listener in die web.xml entsprechend eintragen.
Was mir noch nicht ganz klar ist: Wird dieser Eintrag nur von Tomcat ausgewertet? Oder funktioniert das auch mit anderen Java Servlet Containern? Wird der Listener bei jedem Servlet Aufruf aufgerufen? Oder nur vor dem ersten Servlet Aufruf (sprich nach dem Deploy) und nach dem letzten Servlet Aufruf (sprich vor dem Undeploy)?
Oder bin ich mit dem Listener völlig auf dem falschen Ast und es gibt eine viel bessere Möglichkeit? Möglichst eine, die sich innerhalb der WAR Datei lösen lässt und keine Anpassungen an Dateien des Servers / Java Servlet Containern benötigt.
obwohl ich im Java Umfeld schon mehr als 10 Jahre unterwegs bin, fange ich erst gerade an mich mit dem Thema JSP, Servlets und Struts2 zu beschäftigen. Meine erste kleine Struts2 Anwendungen habe ich bereits fertig. Nun bin ich über das Problem gestolpert, dass ich gerne gewusst hätte, wann meine WAR Datei deployt bzw. undeployt wird. Das wäre interessant für Initialisierung und Deinitalisierung von bestimmten Dingen (Persistenz Schicht, Business Logic, usw.). In meiner Struts2 Anwendung war das kein Problem, da ich Jetty verwendet habe und ich die ganzen Sachen außerhalb initialisiert und deinitalisiert habe. Aber die Konstellation wird es nicht bei jedem Projekt geben.
Nachdem ich etwas im Internet gesucht habe, bin ich über folgendes Interface gestolpert: ServletContextListener
Wenn ich die folgenden Seiten richtig verstehe:
How to Initialize a Database on Application Startup.
MBeans and Tomcat: A HOWTO Guide for Managing YOUR Application
muss ich eine Ableitung dieses Interfaces in meiner WAR Datei haben und dann diesen Listener in die web.xml entsprechend eintragen.
Was mir noch nicht ganz klar ist: Wird dieser Eintrag nur von Tomcat ausgewertet? Oder funktioniert das auch mit anderen Java Servlet Containern? Wird der Listener bei jedem Servlet Aufruf aufgerufen? Oder nur vor dem ersten Servlet Aufruf (sprich nach dem Deploy) und nach dem letzten Servlet Aufruf (sprich vor dem Undeploy)?
Oder bin ich mit dem Listener völlig auf dem falschen Ast und es gibt eine viel bessere Möglichkeit? Möglichst eine, die sich innerhalb der WAR Datei lösen lässt und keine Anpassungen an Dateien des Servers / Java Servlet Containern benötigt.