problème Java ME client web service

problème Java ME client web service - Java - Programmation

Marsh Posté le 24-02-2008 à 14:41:00    

Bonjour,
j'ai crée une appli en java normal avec un web service. Maintenant j'en ai crée une seconde de type java mobile avec un client java me web service.
Le problème c'est qu'à un moment, il me demande si je veux utiliser airtime, je met ok mais là plus rien, ca bouge plus et j'ai ca en warning :  
Warning: To avoid potential deadlock, operations that may block, such as  
 networking, should be performed in a different thread than the  
 commandAction() handler.
 
Voici mon code :
 

Code :
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package mailtestservice;
  6. import java.io.*;
  7. import java.rmi.RemoteException;
  8. import javax.microedition.io.*;
  9. import javax.microedition.midlet.*;
  10. import javax.microedition.lcdui.*;
  11. /**
  12. * @author AurÚlien
  13. */
  14. public class Midlet extends MIDlet implements CommandListener{
  15.    
  16.     private Display display;
  17.    
  18.     ///////// variables formulaire /////////  
  19.     Form formulaire = null;
  20.     TextField mail = null;
  21.     TextBox txtResults = null;
  22.     private Command cmdSubmit;
  23.     private Command cmdBack;
  24.     private Command cmdExit;
  25.    
  26. //////////// fin ///////////////////////  
  27.    
  28.     public Midlet() {
  29.        display = Display.getDisplay(this);
  30. ///////////////////////  
  31.        cmdSubmit = new Command("Valider", Command.SCREEN, 1);
  32.        cmdBack = new Command("Retour", Command.BACK, 0);
  33.        cmdExit = new Command("Quitter", Command.EXIT, 1);
  34. ///////////////////////  
  35.     }
  36.    
  37.     public void startApp() {
  38.        
  39.         //////////////////////  
  40.       formulaire = new Form("monsite : test" );
  41.    
  42.       mail = new TextField("Entrez un mail :", null, 50, TextField.ANY);
  43.      
  44.       formulaire.append(mail);
  45.       formulaire.addCommand(cmdSubmit);
  46.       formulaire.addCommand(cmdBack);
  47.       formulaire.addCommand(cmdExit);
  48.       formulaire.setCommandListener(this);
  49.       display.setCurrent(formulaire);
  50.      
  51. /////////////////////  
  52.     }
  53.     public void pauseApp() {
  54.     }
  55.     public void destroyApp(boolean unconditional) {
  56.     }
  57.     public void commandAction(Command c, Displayable d)
  58.     {
  59.       String str = c.getLabel();
  60.      
  61.       if (str.equals("Quitter" )) {
  62.          destroyApp(true);
  63.          return;
  64.       }
  65.       else if (str.equals("Retour" )) {
  66.          display.setCurrent(formulaire);
  67.          return;
  68.       }
  69.       else if (str.equals("Valider" )) {
  70.             try {
  71. System.out.println("ok" );
  72.                 MailTesTService service = new MailTesTService_Stub();
  73.                 String email = mail.getString();
  74.                 if (service.testmail(email)) {
  75.                     System.out.println("ok" );
  76.                 } else {
  77.                     System.out.println("no" );
  78.                 }
  79.             } catch (RemoteException ex) {
  80.                 ex.printStackTrace();
  81.             }
  82.                 }
  83.       }
  84.    
  85.     public void testemail(){
  86.        
  87.     }
  88.  
  89.     }


 

Reply

Marsh Posté le 24-02-2008 à 14:41:00   

Reply

Marsh Posté le 24-02-2008 à 14:57:09    

Je précise :
voici le screenshot où je suis bloqué :
 
http://www.easy-upload.net/fichiers/sun.2008224145633.jpg


Message édité par aureliensm le 24-02-2008 à 14:57:57
Reply

Marsh Posté le 24-02-2008 à 21:38:11    

salut,
ben c'est dans le message d'erreur: si tu veux éviter de bloquer ton appli, tu lances toutes les connexions réseau dans un thread séparé.
Après a priori y'a pas de raison que ton appli bloque, mais tu dois t'assurer que ton émulateur est correctement configuré pour accéder au réseau et SURTOUT ne pas t"en contenter et faire des tests "pour de vrai" sur un terminal. Parce qu'y'a parfois de grosses différences et eds surprises....


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
Reply

Marsh Posté le 24-02-2008 à 21:39:54    

De plus, tu te connectes à un port 8080. FAis gaffe parce que si ca marche bien sur un PC avec de l'internet classique, ca peut être bloqué sur GPRS ou 3G selon ton opérateur...


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
Reply

Marsh Posté le 25-02-2008 à 00:38:43    

Bon en fait, c'est bien un problème de réseau.
J'ai modifié les paramètres réseaux de l'emulateur, je n'ai plus le message avec airtime et tout marche.
merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed