IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Probleme avec l'execution d'un programme ext


Sujet :

Langage Java

  1. #1
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut Probleme avec l'execution d'un programme ext
    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 ....

    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 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
    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();
              }
    voici les erreurs envoyer par la JVM
    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)
    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é !!!!!!!
    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 !!

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Si c'est effectivement ça le problème, tu peux gérer des retry sur ta connection ...
    Un conseil : utilise httpclient comme API pour tout ça, c'est beaucoup plus fiable et plus propre à mon sens (et tu géreras les retry/timeouts facilement).

    Sinon, n'oublie pas, les conventions de nommage c'est bien !

Discussions similaires

  1. Probleme avec l'execution d'un script
    Par STELLLA dans le forum Oracle
    Réponses: 4
    Dernier message: 23/09/2010, 21h34
  2. probleme avec l'execution
    Par soujava dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 17/05/2008, 11h19
  3. probleme avec l'executable
    Par dex_tritus dans le forum Visual Studio
    Réponses: 4
    Dernier message: 29/06/2007, 13h54
  4. [Runtime] probleme avec l'execution d'un programme externe
    Par Jérémy Lefevre dans le forum API standards et tierces
    Réponses: 18
    Dernier message: 21/06/2007, 12h57
  5. Probleme avec mon execution
    Par keitamoustapha dans le forum C++
    Réponses: 3
    Dernier message: 02/11/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo