Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1840 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  problème de connexion HTTP J2ME avec Threading

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de connexion HTTP J2ME avec Threading

n°1130133
chicotruss
Posté le 24-06-2005 à 16:12:54  profilanswer
 

Salut, je dois faire une application qui nécessite d'effectuer plusieurs connexions successives avec l'exterieur. Pour une compatibilité optimale je suis en MIDP 1.0 et je ne dispose donc que du HttpConnection.
 
Mon programme principal fabrique des requetes sous forme de byte[] et attend en réponse également des byte[]. Les requetes s'effectuent sur pression d'une commande. J'utilise l'emulateur du J2ME Wireless Toolkit 2.2 de Sun lors de l'execution, il me renvoie un warning m'indiquant que les opérations réseau ne doivent pas être effectués dans le même thread que le gestionnaire de commandes. J'ai donc créér une classe utilitaire pour transfèrer mes données:
 

Code :
  1. public final class HttpSender extends Thread implements HttpParameter {
  2. private byte[] bufferW = null;
  3. private byte[] bufferR = null;
  4. public boolean achieved = false;
  5. HttpConnection http = null;
  6. OutputStream out = null;
  7. InputStream in = null;
  8. public HttpSender(byte[] msg) {
  9.  super();
  10.  bufferW = msg;
  11. }
  12. public synchronized void run() {
  13.  if(bufferW != null) {
  14.   try {
  15.    http = (HttpConnection)Connector.open(serverURL, Connector.READ_WRITE);
  16.    http.setRequestMethod(HttpConnection.POST);
  17.    out = http.openOutputStream();
  18.    in = http.openInputStream();
  19.    out.write(bufferW);
  20.    bufferR = new byte[in.available()];
  21.    in.read(bufferR);
  22.   } catch(Exception exc) {
  23.    //display error
  24.    exc.printStackTrace();
  25.   } finally {
  26.    try {
  27.     in.close();
  28.    } catch(Exception exc) {}
  29.    try {
  30.     out.close();
  31.    } catch(Exception exc) {}
  32.    try {
  33.     http.close();
  34.    } catch(Exception exc) {}
  35.   }
  36.  }
  37.  achieved = true;System.out.println("ok" );
  38.  notifyAll();
  39. }
  40. public synchronized byte[] getResponse() throws Exception {
  41.  while(!achieved) {
  42.   try {
  43.    wait();
  44.   } catch(Exception exc) {
  45.    exc.printStackTrace();
  46.   }
  47.  }
  48.  return(bufferR);
  49. }


 
Mon problème est qu'avec ce code, je reste bloqué sur le panneau d'autorisation d'utiliser le réseau. N'étant pas vraiment le roi de la programmation multithread, je ne vois pas ce qui cause mon erreur.
 
Je tiens à préciser que si je n'effectue pas une synchronisation entre mes threads, lorsque je lis la réponse, la methode run n'est pas encore achevée et bufferR est null.
 
Quelqu'un saurait t'il ce qui ne vas pas dans mon code ou aurait un bon tuto ?
 
[ps: j'arrive à faire des tests de base concluant avec mon servlet, ex: le tuto de sun sur MIDP. Mon prog reste planté sur le Connector.open(...)]

mood
Publicité
Posté le 24-06-2005 à 16:12:54  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  problème de connexion HTTP J2ME avec Threading

 

Sujets relatifs
Polices Viendez lire mon deernier messageprobleme entre internet explorer et firefox
Probleme de connexion ORACLE et C#probleme d'insertion dans ma BDD
Probleme dans le centrage de mon siteProblème de clef etrangère
Login/Pass Connexion HTTPProbleme d'affichage a cause des annonces de google
Plus de sujets relatifs à : problème de connexion HTTP J2ME avec Threading


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR