Bonjour à tous,
Alors voila, j'ai un fichier sites.xml qui contient un ensemble d'information sur des sites (@ip, VpnIp,...). Voici un extrait:
En tout j'ai 18 sites.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <sites> <site> <ip>127.0.0.1</ip> <vpnip>VPNLL00404</vpnip> .... </site> </sites>
D'un autre coté j'ai mon application qui va venir et lire ce fichier, extraire les @ip des different sites et essayer un isReachable() pour tester la ligne.
Mais voila, quand je lance un test, je me rend compte que le programme me ne lit pas tout les site mais seulement la moitier (1, 3, 5, 7, 9, ...).
Je ne voit pas d'ou provient cette erreur. J'affiche si aprés des portions de code d'ou peut provenir l'erreur.
la méthode qui va exécuter le isReachable
La méthode qui me lit le fichier xml et me retourn les sites
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 public ArrayList<TestResult> isReachable(){ int timeout=10000; try{ Site s= new Site(); ArrayList<Site> sites=s.getAllSite(); Iterator<Site> i=sites.iterator(); ArrayList<TestResult> results= new ArrayList<TestResult>(); while(i.hasNext()){ //création d'un reultat result et initialisation TestResult result= new TestResult(); result.setSite(i.next()); String host= result.getSite().getIp(); result.setResult(InetAddress.getByName(host).isReachable(timeout)); //ajouter le resultat au tableau results.add(result); } return results; } catch (Exception e) { System.out.println(e.getMessage()); return null; } }
Le main
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 public ArrayList<Site> getAllSite(){ final Document document; final Element racine; SAXBuilder sxb= new SAXBuilder(); try{ document = sxb.build(new File("sites.xml")); racine= document.getRootElement(); List<String> sites= racine.getChildren("site"); ArrayList<Site> site= new ArrayList<Site>(); Iterator i= sites.iterator(); while (i.hasNext()) { Element courant= (Element)i.next(); Site s= new Site(); s.setNom(courant.getChild("nom").getText()); s.setDebit(courant.getChild("debit").getText()); s.setVpnIp(courant.getChild("VpnIp").getText()); s.setIp(courant.getChild("ip").getText()); site.add(s); } return site; }catch (Exception e) { System.out.println(e.getMessage()); return null; } }
Merçi pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public static void main(String[] args) { TestLigne t= new TestLigne(); ArrayList<TestResult> r= t.isReachable(); Iterator<TestResult> i= r.iterator(); while (i.hasNext()) { System.out.println(i.next().getSite().getIp()+"--"+i.next().getResult().toString()); } }
Partager