2010-11-10 7 views
0

Existe-t-il un moyen d'exécuter du code sur Tomcat 6 lorsque l'application est arrêtée/déchargée? (J'essaie de désenregistrer le pilote MySQL à la main en raison d'un problème de fuite de mémoire).Méthode Tomcat 6 finalize

Merci à l'avance

Répondre

0

Enregistrer un ServletContextListener.

2

L'utilisation d'un ServletContextListener est la procédure standard pour ce genre de choses.

Il dispose de deux méthodes utiles: l'une est déclenchée lors de l'initialisation de l'application et l'autre lors de l'arrêt de l'application. Ce sont, respectivement,

void contextInitialized(ServletContextEvent sce) 

et

void contextDestroyed(ServletContextEvent sce) 

Vous aurez envie d'utiliser le second pour le nettoyage.

implémentent l'interface mentionnée:



package com.myapp 

public class AppListener implements ServletContextListener { 

    public void contextDestroyed(ServletContextEvent sce) 
    { 
    // Application shuts down. Put your cleanup code here. 
    } 

    public void contextInitialized(ServletContextEvent sce) 
    { 
    // Application starts up. 
    } 

} 

et l'enregistrer dans web.xml:

<web-app> 
    <listener> 
    <listener-class> 
    com.myapp.AppListener 
    </listener-class> 
    </listener> 
</web-app> 
+0

Merci qui a travaillé. :) – user500042

+0

@ user500042: vous pouvez accepter une réponse si vous la trouvez utile – darioo