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 :
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.Code:
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");
Hors, la fonction "interrupt()" est supposée arrêt le Thread.
Voyez-vous où est le problème ?
Merci d'avance.