Bonjour,
je reposte mon problème sur cette section qui etait dans la section applet ....
j'ai un petit probleme avec java sous Linux,
j'ai developpé une applet qui télécharge un binaire, qui le place sur la machine client et l'execute.
Ce binaire est un programme codé en c++ qui inclut un serveur web donc j'envoie via Java des url pour executer les requetes que je veux.
Probleme : le programme ce lange très bien mais lorsque j'envoi la requete juste apres avoir executé le binaire j'ai une exeption Connection refused !
je vous passe mon code ainsi qui me télécharge le binaire ainsi que le code permetant de lancer une requette ....
voici ma fonction qui me permet de lancé une requete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public void execFile() { try { Runtime.getRuntime().exec(this._urlDest); URL requete=new URL("http://127.0.0.1:53419/?param=toto"); this.postURL(requete); } catch(IOException e) {System.out.println("the application launch a runtime exeption");} }
voici les erreurs envoyer par la JVM
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 public String postURL(URL a_Url) { //recup du saut de ligne String o_sLineSep = null; try { o_sLineSep = System.getProperty("line.separator"); } catch (Exception e) { o_sLineSep = "\n"; } try { HttpURLConnection o_oUrlConn = (HttpURLConnection) a_Url.openConnection(); o_oUrlConn.setRequestMethod("GET"); o_oUrlConn.setAllowUserInteraction(false); //envoyer des params o_oUrlConn.setDoOutput(true); //Lire la reponse InputStream o_oResponse = o_oUrlConn.getInputStream(); BufferedReader o_oBufReader = new BufferedReader(new InputStreamReader(o_oResponse)); String sLine; while ((sLine = o_oBufReader.readLine()) != null) { // o_oSb.append(sLine); // o_oSb.append(o_sLineSep); } //deconnection*/ o_oUrlConn.disconnect(); }
Alors selon moi la seul explication est que le server web n'as pas eu le temps de s'initialisé alors que la requete est deja lancer! mais comment checker si le serveur est lancé !!!!!!!java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at java.net.Socket.connect(Socket.java:402)
at sun.net.NetworkClient.doConnect(NetworkClient.java:139)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:402)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:618)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:306)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:267)
at sun.net.www.http.HttpClient.New(HttpClient.java:339)
at sun.net.www.http.HttpClient.New(HttpClient.java:320)
at sun.net.www.http.HttpClient.New(HttpClient.java:315)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:521)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:498)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:626)
at Download.postURL(Download.java:157)
at Download.execFile(Download.java:197)
at JiaxCall.init(JiaxCall.java:50)
at sun.applet.AppletPanel.run(AppletPanel.java:354)
at java.lang.Thread.run(Thread.java:534)
ce qui me permet de dire ca est que lorsque je lance une seconde fois mon applet alors l'application lance directement la requete et ca marche très bien !!
Partager