2008-12-31 4 views
1

Je veux obtenir un 'événement' avant que tomcat arrête mon application web.
Mon application doit "envelopper" des choses avant qu'il ne soit fermé.Comment puis-je savoir quand mon application web Tomcat s'est arrêtée?

+0

comment entamez-vous/arrêter? Quel système d'exploitation? Que signifie "Wrap up"? Ce code java doit-il être exécuté? –

+0

J'ai besoin d'envoyer un message (en utilisant un simple socket UDP) pour dire que l'application est arrêtée. Je cours Tomcat sous Linux (Ubuntu). oui, mon application est une application basée sur Java servlet. –

Répondre

2

Je pense que je l'ai trouvé, je créé un servlet et mis en œuvre le

public void destroy(); 

J'ai vérifié que cette méthode est invoquée lorsque j'arrête l'application de la page d'administration tomcat, et même quand je tomcat fermé vers le bas serveur

JavaEE 6 doc on Servlets

1

Vous pouvez écrire un ContextListener qui répond aux événements deploy/undeploy. Peut-être que vous pouvez l'avoir un email quand le contexte n'est pas déployé.

Je ne suis pas sûr si cet événement est déclenché si le serveur de l'application est arrêté.

4

une servlet qui ne fait que répondre à destroy() est fonctionnelle mais un peu d'un hack. Les servlets sont destinés à gérer les requêtes Web.

La bonne chose à faire est de mettre en œuvre un ServletContextListener et de faire votre truc dans la méthode contextDestroyed().

Enregistrez votre ServletContextListener dans web.xml comme:

<listener> 
    <listener-class>com.foo.MyListener</listener-class> 
</listener> 
Questions connexes