Bonjour,
Là il m'arrive vraiment un mauvais coup
Mon programme doit parser un fichier XML (plus précisément GXL, généré par l'application JGraphPad), chose qu'il faisait très bien (prêt à être livré)... jusqu'à ce matin! J'ai maintenant une IOException "Connection timed out: connect".
Voici la partie du code où est générée l'erreur:
Vous l'aurez compris, c'est une IOException que je reçois à chaque fois. Voici les messages que j'obtiens en console:
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 ... JFileChooser chooser = new JFileChooser(); File graphFile = null; chooser.setDialogTitle("Choose the GXL graph file to use"); int returnVal = chooser.showOpenDialog(null); if(returnVal != JFileChooser.APPROVE_OPTION) { System.exit(0); } graphFile = chooser.getSelectedFile(); SAXParserFactory factory; SAXParser parser = null; try{ factory = SAXParserFactory.newInstance(); parser = (SAXParser) factory.newSAXParser(); } catch (ParserConfigurationException pExc) {} catch (SAXException sExc) {} // GraphReadingHandler hérite de DefaultHandler, et se //contente de redéfinir quelques methodes GraphReadingHandler handler = new GraphReadingHandler(); try{ parser.parse(graphFile, handler); } catch (SAXException sEx) { JOptionPane.showMessageDialog(null, "4-There is a problem with the file that you have provided." +"\n"+"Please provide a valid GXL graph file, message: "+sEx.getMessage(), "SAXException", JOptionPane.ERROR_MESSAGE); System.exit(3); } catch (IOException io) { io.printStackTrace(); JOptionPane.showMessageDialog(null, "5-There is a problem with the file that you have provided. Message: "+io.getMessage(), "IOException", JOptionPane.ERROR_MESSAGE); System.exit(3); } ...
Des infos supplémentaires:
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 java.net.ConnectException: Connection timed out: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at SimulationBeginning.parseGraphFile(SimulationBeginning.java:343) at SimulationBeginning.checkGraphFile(SimulationBeginning.java:215) at SimulationBeginning.main(SimulationBeginning.java:43)
1-Mon fichier XML se trouve sur mon ordinateur, il n'y a aucune connection distante.
2-Le XML que je lis est le même que celui que j'ai toujours testé pour mon programme. Par prudence j'ai aussi essayé sur d'autres fichiers XML, mais le même problème persiste.
3-Mon programme marchait bien jusqu'à ce matin! Mais j'ai maintenant ce message d'erreur sur mon PC, mais également sur le Mac de ma compagne. Seul changement que j'avais fait nettoyage du code (enlevé les lignes commentées, eh oui je dois rendre mon projet demain!) et rajout de commentaires avant chaque méthode pour générer la Javadoc (avec Eclipse).
4-J'ai mis des catch(Exception e) un peu partout dans ma classe GraphReadingHandler (celle qui hérite de DefaultHandler), ils envoient tous un message via JOptionPane, mais le problème de semble pas venir de cette classe...
5-Cette IOException se produit que le programme soit lancé via Eclipse, ou via un jar (je dis ça parce que j'ai eu une fois un problème de suppression de fichier qui s'est résolu en redémarrant Eclipse!).
Si vous pouviez m'aider ce serait vraiment formidable, je ne comprends absolument pas ce qui se passe: j'ai fait de nombreuses recherches mais les problèmes d'IOException sont souvent rencontrés quand il y a des connexions distantes en jeu...
Edit: une précision, j'ai demandé à ma compagne de relancer une version précédente du jar sur son Mac (que je lui avais envoyé par mail il y a 2 jours, donc avant que je nettoie le code, et qui marchait. Eh bien il y a le meme probleme, une IOException est lancée!!! Je n'y comprends rien... pourquoi une jar se mettrait-il à ne plus marcher sur plusieurs machines différentes???
Heeeeeeelp pleeeeaase!
Partager