Hi,
J'utilise dans mon application tomcat 5.0.19, jdk 1.5.0_01.
Je dois creer un thread dans mon application web au demarrage et bien sur le thread doit etre tué des l'arret de cette application pour cela mon thread implemente l'interface ServletContextListener.

Le code de mon thread:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
 
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
 
public class ContextListener extends Thread implements ServletContextListener {
	// local variable refer the status of thread
	private boolean running;
	private int indice=0;
	ContextListener() {
		// wait to run server
		running = false;
		// thread daemon in order to enable server to shut down properly
		this.setDaemon(true);
	}
 
	public void run() {
		System.out.println("démarrage du thread");
		// sleep time for the thread = 3 seconds
		long millis = (long) (3 * 1000);
		running = true;
		while (running) {
			System.out.println("¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Thread run number = " + indice);
			try {
				// sleep
				sleep(millis);
				indice = indice + 3;
 
			} catch (InterruptedException e) {
				System.out.println("exception sleep");
			}
		}
	}
 
	public void contextDestroyed(ServletContextEvent arg0) {
 
		running = false;
		System.out.println("halt thread");
	}
 
	public void contextInitialized(ServletContextEvent arg0) {
		System.out.println("initialized thread");
	}
 
	/**
         * @return the running
         */
	public boolean isRunning() {
		return running;
	}
 
	/**
         * @param running
         *            the running to set
         */
	public void setRunning(boolean running) {
		this.running = running;
	}
 
}

le web.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<listener>
        <listener-class>
         src.util.ContextListener 
        </listener-class>
    </listener>
mais le prbleme qd je demarre le serveur tomcat ( version 5.0.19 ), ce dernier ne fait pas le deploiement et jai comme message dans la console du tomcat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
GRAVE: Linstallation des écouteurs (listeners) de l'application a été sautée suite aux erreurs précédentes
30 janv. 2008 10:02:50 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart
30 janv. 2008 10:02:50 org.apache.catalina.core.StandardContext start
GRAVE: Erreur de démarrage du contexte suite aux erreurs précédentes
Le bizarre c que quand j'enleve le listener de mon web.xml, tomcat demarre et deploie l'application normalement.

Quelqu'un connait le problème car j'ai cherché mais j'ai pas trouvé la solution?