[Problème] Instanciation de Servlet au démarrage de Tomcat
Instanciation de Servlet au démarrage de Tomcat [Problème] - Java - Programmation
MarshPosté le 17-04-2009 à 10:56:14
Bonjour,
Je souhaiterais configurer mon serveur Tomcat (V5.5) afin de lancer automatiquement une Servlet à son démarrage.
Pour cela, j'ai modifié le fichier de déploiement web.xml de la façon suivante : <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>MaServlet</servlet-name> <servlet-class>monpackage.MaServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> </web-app>
De plus, j'ai placé le code à exécuter au démarrage du serveur dans la méthode public void init(ServletConfig config) de ma Servlet.
Le problème est que ma Servlet semble être instanciée 2 fois par Tomcat à son démarrage ! En effet, en observant les traces dans les logs, je m'aperçois que le constructeur et la méthode init() sont appelées deux fois .....
Le souci vient du fait que le code en question ne doit être exécuté qu'une seule fois au démarrage. :-(
=> Que dois-je donc préciser dans mes fichiers de configuration (server.xml, web.xml, ...) afin de n'instancier ma Servlet qu'une seule fois ?
Marsh Posté le 17-04-2009 à 10:56:14
Bonjour,
Je souhaiterais configurer mon serveur Tomcat (V5.5) afin de lancer automatiquement une Servlet à son démarrage.
Pour cela, j'ai modifié le fichier de déploiement web.xml de la façon suivante :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>MaServlet</servlet-name>
<servlet-class>monpackage.MaServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
De plus, j'ai placé le code à exécuter au démarrage du serveur dans la méthode public void init(ServletConfig config) de ma Servlet.
Le problème est que ma Servlet semble être instanciée 2 fois par Tomcat à son démarrage !
En effet, en observant les traces dans les logs, je m'aperçois que le constructeur et la méthode init() sont appelées deux fois .....
Le souci vient du fait que le code en question ne doit être exécuté qu'une seule fois au démarrage. :-(
=> Que dois-je donc préciser dans mes fichiers de configuration (server.xml, web.xml, ...) afin de n'instancier ma Servlet qu'une seule fois ?
Merci d'avance pour vos précieuses réponses.