Bonjour,

Dans le cadre de mon projet, je dois appeler des WebService.
Dans le cas où le WebService ne répond pas, je souhaite ajouter un timeout sur un thread qui permettrais d'arrêter l'appel à ce WebService.

J'ai donc trouvé un code qui paraissait parfaitement me convenir, mais cela ne fonctionne pas.

Voici le code :
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
 
final long TIMEOUT = 10;//30000;
cat.error("pre-passe");
Thread appelWS = new Thread() {
	@Override
	public void run() {
	appelWebServiceMail(parametre1);
              }
};
cat.error("pre-passe1");
appelWS.setDaemon(true);//le Thread d'appel au WS est défini comme démon
appelWS.start();//lancement de l'appel
long end = System.currentTimeMillis() + TIMEOUT;
//on boucle tant que le timeout n'est pas écoulé
while (end > System.currentTimeMillis()) {
	cat.error("pre-passe2");
	Thread.sleep(1);//on attend un seconde
}
appelWS.interrupt();
cat.error("pre-passe3");
Le problème est que j'ai mis pas mal d'affichage de messages d'erreurs dans la fonction appelWebServiceMail et que ceux-ci continuent à s'afficher même après que "pre-passe3" soit affiché, tout comme les fonctions appelées par cette fonction.

Hors, la fonction "interrupt()" est supposée arrêt le Thread.

Voyez-vous où est le problème ?

Merci d'avance.