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

GWT et Vaadin Java Discussion :

comment faire un appel RPC dans Command


Sujet :

GWT et Vaadin Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 113
    Par défaut comment faire un appel RPC dans Command
    bonjour
    j'ai fais un appel rpc d'un methode qui fais la véréfication si l'user est identifier ou pas avant d'accéder eu menu " Menu1" sinon il peut pas ouvrir le Menu,mais coté client il m'affiche une exception dans :_service.Test()..
    voilà le code:
    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
     
    MenuBar fileMenu = new MenuBar(true);
      fileMenu.addItem("Menu1", cmd);
     Window.setMargin("0px");
         Command cmd = new Command() {
     
          public void execute() {
     
            _service.test(new AsyncCallback(){
     
              public void onFailure(Throwable caught)
              {
               Window.alert("ereur" + caught);
     
              }
     
              public void onSuccess(Object result)
              {
                Boolean b = (Boolean) result;
                if(b != null && b.booleanValue() == true)
                   RootPanel.get().add(new Menu1());         
     
              } 
             });
    mais apparament je peux pas faire un aple dans un Command
    merci de votre réponse

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    ll n'y a aucune raison pour que les appels distants ne puissent pas être effectués à partir d'une interface Command. Vérifie bien que tu n'as pas fait d'erreur.

    Pour rappel, tu dois avoir :
    • une interface qui déclare les services que tu veux implémenter
    • une interface qui porte le même nom que ton service suivi du suffixe Async
    • une servlet qui implémente le service et dont le nom est le même que le service suivi du suffixe Impl


    Vérifie également que tes classes sont correctement distribués dans les packages client et server. Il n'y a aucune raison pour que ça ne marche pas.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 113
    Par défaut
    merci
    mais là j'ai toutes mes classe :

    coté Client:MyService , MyServiceAsync ,et dans coté server MyServiceImpl;
    et l'erreur toujours dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     _service.test(new AsyncCallback(){//cette ligne
    merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Quel est le message d'erreur précisément ?

    Subsidiairement, il n'est pas judicieux de créer une instance de AsyncCallback à chaque appel.
    Au lieu d'avoir ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    new Command() {
    	public void execute() {
    		service.test(new AsyncCallback() {
    			[...]
    		});
    	}
    };
    il vaudrait mieux avoir quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    new Command() {
    	AsyncCallback callback = new AsyncCallback() {
    		[...]
    	};
    	public void execute() {
    		service.test(callback);
    	}
    };

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 113
    Par défaut
    bonjour
    j'ai essayé de créer mon callback or de Command mais sa marche pas aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      AsyncCallback callback = new AsyncCallback(){
    //.....
    }
         Command cmd = new Command() {
     
          public void execute() {
     
          _service.test(callback);
     
          } 
      };
    tiujours l'erreur dans cette ligne:_service.test(callback);
    ava.lang.NullPointerException: null
    at project.demo.web.client.Menu$2.execute(Menu.java:59)
    at com.google.gwt.user.client.CommandExecutor.doExecuteCommands(CommandExecutor.java:307)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Si tu as un NullPointerException cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     _service.test(new AsyncCallback(){//cette ligne
    ça veut dire que la variable _service n'a pas été initialisée, il s'agit d'une erreur d'étourderie, relis bien ton code.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 113
    Par défaut
    oui c'été ça merci encore

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    de rien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/01/2005, 22h14
  2. [CR]Comment faire de longs commentaires dans le code
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 07/06/2004, 20h45
  3. [VB.NET] Comment faire un appel de fonction ?
    Par Webman dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/05/2004, 10h06
  4. Réponses: 5
    Dernier message: 08/03/2004, 10h28

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