Announcement

Collapse
No announcement yet.

Methode einer Web-App bei Tomcat shutdown aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Methode einer Web-App bei Tomcat shutdown aufrufen

    Hi,

    ich bin auf der Suche nach einer Möglichkeit eine Methode in meiner Web-Applikation aufzurufen wenn der tomcat gestoppt oder ein reload gemacht wird.
    Ich möchte die DB-Verbindung kontrolliert schliessen und dazu eine Methode aufrufen.
    Gibt es eine Schnittstelle im Tomcat von der aus man eine Web-App ansprechen kann?

    Vielen Dank für Hilfe

    Florian

  • #2
    Hallo Florian,

    ein Context Listener ist genau das was zu brauchst. Der bezieht sich nicht auf das Starten bzw. Stoppen des Tomcats sondern auf den Context. Aber das ist auch richtig so, denn die DB wird auch in der Applikation initialisiert. Weiters ist für einen Context reload das Freigeben der Verbindungen zur DB wichtig.

    lg Dietma

    Comment


    • #3
      Hi,
      danke für die schnelle Antwort.
      Könntest du mir das ein wenig genauer erklären?
      Ich rufe die Methode also innerhalb meiner Web-App auf, sobald diese merkt, dass der Tomcat stoppt oder gereloadet wird. Ja?
      An welcher Stelle baut man so einen Listener ein?

      Gruss Fl

      Comment


      • #4
        Hallo Florian,

        prinzipiell ja. Es ist so. Der Tomcat startet zuerst und dann wenn's so weit ist, dann werden die Applikationen ( context ) gestartet. Beim Stopen vom Tomcat läuft es umgekehrt. Zuerst werden alle Applikationen gestopt und dann der Tomcat.

        Den Listener mußt Du in der web.xml eintragen.

        zb.:

        <code>
        <?xml version="1.0" encoding="UTF-8"?>
        <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <listener>
        <listener-class>org.foo.MyContextListener</listener-class>
        </listener>

        ....
        </code>

        und in der Klasse org.foo.MyContextListener mußt Du nur das interface ServletContextListener mit den Methoden contextInitialized und contextDestroyed implementieren. Und genau diese Methoden werden aufgerufen, wenn die App starte bzw. stopt.

        lg Dietma

        Comment


        • #5
          Hi,

          das klingt viel versprechend. Ich werde das ausprobieren, müsste aber genau das sein was ich brauche.

          Vielen Dank nochmal.

          Gruss

          Floria

          Comment


          • #6
            Hallo nochmal,

            ich hab das jetzt eingebaut und es funktioniert.
            Sehr fein.

            Vielen Dank nochmal

            Floria

            Comment


            • #7
              Gerne.

              lg Dietma

              Comment

              Working...
              X