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 :

Problème d'appel d'une méthode (RPC Mode)


Sujet :

GWT et Vaadin Java

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut Problème d'appel d'une méthode (RPC Mode)
    Bonjour,

    J'ai mis en place une application GWT devant récupérer des données via un webservice afin de les afficher à l'écran. J'ai d'abord voulu implémenter cette méthode de manière simple avant de me rendre compte en me renseignant que je devais utiliser GWT RPC pour pouvoir utiliser ma méthode dans mon application (utilisation de librairie non utilisable côté client).

    J'ai donc suivi le tutoriel sur google code mais je n'arrive pas à faire marcher l'appel à ma méthode.

    Voici donc le contenu de mon fichier .gwt.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <module rename-to='intranet'>
     
      <inherits name='com.google.gwt.user.User'/>
     
      <inherits name='com.google.gwt.user.theme.clean.Clean'/>
     
      <entry-point class='com.societe.web.client.Intranet'/>
     
      <source path='client'/>
      <source path='shared'/>
     
    </module>
    Le contenu de ma classe côté serveur, ClientServiceImpl:

    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
    34
    35
    36
    37
    38
     
    @SuppressWarnings("serial")
    public class ClientServiceImpl extends RemoteServiceServlet implements ClientService {
     
    	public List<Client> getListeClients() {
    		String endpoint = "http://localhost:8095/Processes/ReferentielSocieteServices.serviceagent/ReferentielSocieteEndpoint";
    		ReferentielSocieteEndpointBindingStub stub;
    		GetListClientsResponseClientsClient[] clients = null;
    		try {
    			stub = new ReferentielSocieteEndpointBindingStub(new java.net.URL(endpoint), new Service());
    			GetListClientsRequest req = new GetListClientsRequest();
    			GetListClientsResponse resp = stub.getListClients(req);
    			clients = resp.getClients();
    		} catch (AxisFault e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (RemoteException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		List<Client> CLIENTS = Arrays.asList();
     
    		for (int i =0;i<clients.length;i++){
    			GetListClientsResponseClientsClient clientXML = clients[i];
    			Client client = new Client(clientXML.getCLIENT_NOM(),
    					clientXML.getCLIENT_PHONE(),
    					clientXML.getCLIENT_EMAIL(),
    					clientXML.getSECTEUR_NOM(),
    					clientXML.getCLIENT_ACTIF().toString());
    			CLIENTS.add(client);
    		}
     
    		return CLIENTS;
    	}
    }
    Le code de ma première interface côté client, ClientService:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @RemoteServiceRelativePath("clients")
    public interface ClientService extends RemoteService {
     
    	public List<Client> getListeClients();
     
    }
    Le code de ma seconde interface côté client, ClientServiceAsync:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public interface ClientServiceAsync {
     
    	public void getListeClients(AsyncCallback<List<Client>> callback);
    }
    Ma classe Client (dont je récupère les données):

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    public class Client {
        private String name;
        private String phone;
        private String mail;
        private String actif;
        private String secteur;
        private ClientServiceAsync clientSvc = GWT.create(ClientService.class);
     
    	public Client(String name, String phone, String mail,String secteur, String actif) {
          this.name = name;
          this.phone = phone;
          this.mail = mail;
          this.secteur = secteur;
          this.actif = actif;
        }
     
    	public Client(){	
    	}
     
    	public String getName() {
    		return name;
    	}
     
    	public void setName(String name) {
    		this.name = name;
    	}
     
    	public String getPhone() {
    		return phone;
    	}
     
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
     
    	public String getMail() {
    		return mail;
    	}
     
    	public void setMail(String mail) {
    		this.mail = mail;
    	}
     
    	public String getActif() {
    		return actif;
    	}
     
    	public void setActif(String actif) {
    		this.actif = actif;
    	}
     
    	public String getSecteur() {
    		return secteur;
    	}
     
    	public void setSecteur(String secteur) {
    		this.secteur = secteur;
    	}
     
     
     
           public void getListeClientsCallback(final List<Client> list) {
     
    		 // Initialize the service proxy.
    	    if (clientSvc == null) {
    	    	clientSvc = GWT.create(ClientService.class);
    	    }
     
    	    // Set up the callback object.
    	    AsyncCallback<List<Client>> callback = new AsyncCallback<List<Client>>() {
    	      public void onFailure(Throwable caught) {
    	        // TODO: Do something with errors.
    	      }
     
    	      public void onSuccess(List<Client> result) {
    	    	  for (Client client : result) {
    	    	      list.add(client);
    	    	    }
    	      }
    	    };   
    	 // Make the call to the stock price service.
    	    clientSvc.getListeClients(callback);
    	}
     
    	public List<Client> getListeClients(List<Client> clientList){
    		return clientList;
    	}
    }
    Et l'appel à ma procédure dans ma classe d'entrypoint:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	    Client c = new Client();
    	    c.getListeClientsCallback(list);
    Hors, lorsque j'exécute le code en debug, je ne rentre jamais dans la méthode de la classe côté serveur (ClientServiceImpl) ni d'ailleurs dans le onSuccess de ma méthode callback.

    Qu'est ce que je fais de "mal"?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    Comment appelles-tu la méthode "getListeClientsCallback"?

    Cette méthode ne devrait pas être dans ta classe Client. Ta classe Client est un DTO qui doit implémenter Serializable.

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Bonjour galel,

    Tout d'abord merci pour ton aide. Je viens de modifier la classe client suivant tes recommandations, et j'ai déplacé ma méthode callback dans la classe qui implémente entrypoint.

    Voici la nouvelle classe Client:

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    public class Client implements Serializable {
        private String name;
        private String phone;
        private String mail;
        private String actif;
        private String secteur;
     
     
    	public Client(String name, String phone, String mail,String secteur, String actif) {
          this.name = name;
          this.phone = phone;
          this.mail = mail;
          this.secteur = secteur;
          this.actif = actif;
        }
     
    	public Client(){	
    	}
     
    	public String getName() {
    		return name;
    	}
     
    	public void setName(String name) {
    		this.name = name;
    	}
     
    	public String getPhone() {
    		return phone;
    	}
     
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
     
    	public String getMail() {
    		return mail;
    	}
     
    	public void setMail(String mail) {
    		this.mail = mail;
    	}
     
    	public String getActif() {
    		return actif;
    	}
     
    	public void setActif(String actif) {
    		this.actif = actif;
    	}
     
    	public String getSecteur() {
    		return secteur;
    	}
     
    	public void setSecteur(String secteur) {
    		this.secteur = secteur;
    	}
     
     
    }
    Et voici ma classe implémentant entrypoint:

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    public class IntranetLayona implements EntryPoint {
     
    	private ClientServiceAsync clientSvc = GWT.create(ClientService.class);
    	/**
             * This is the entry point method.
             */
    	public void onModuleLoad() {
     
     
    		[...]
    		//remplissage de la table des clients
    		ListDataProvider<Client> clientProvider = new ListDataProvider<Client>();
    		clientProvider.addDataDisplay(clientCellTable);
     
    	    List<Client> list = clientProvider.getList();
     
    	    getListeClientsCallback(list);
     
    	    clientProvider.refresh();
     
    	[.....]
    	}
     
    	public void getListeClientsCallback(final List<Client> list) {
     
    		 // Initialize the service proxy.
    	    if (clientSvc == null) {
    	    	clientSvc = GWT.create(ClientService.class);
    	    }
     
    	    // Set up the callback object.
    	    AsyncCallback<List<Client>> callback = new AsyncCallback<List<Client>>() {
    	      public void onFailure(Throwable caught) {
    	        // TODO: Do something with errors.
    	      }
     
    	      public void onSuccess(List<Client> result) {
    	    	  for (Client client : result) {
    	    	      list.add(client);
    	    	    }
    	      }
    	    };   
    	 // Make the call to the stock price service.
    	    clientSvc.getListeClients(callback);
    	}
    }
    Je précise qu'auparavant j'effectuais le remplissage de mon objet clientProvider avec une méthode qui rajoutait une liste de clients en dur et que ca fonctionnait correctement.

    Là, je viens de relancer en debug et j'ai toujours le même probleme, je ne rentre pas dans le onSuccess (ni dans le onFailure d'ailleurs en éxecutant pas à pas) de ma méthode callback :/

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    Avant de vérifier si tu as une réponse pour ton CallBack vérifie que l'appel au serveur se fait correctement. Pour cela mets un break point sur ton ServiceImpl.

    Vérifies aussi si ta servlet est bien déclarée dans le web.xml

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    J'ai omis de préciser que j'ai aussi mis un point de débuggage dans mon ServiceImpl et que l'exécution du code ne passe jamais dans cette classe.

    Concernant le web.xml, j'ai bien mis la déclaration de ma servlet comme suit:

    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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
     
    <web-app>
     
      <!-- Servlets -->
      <servlet>
        <servlet-name>clientServiceImpl</servlet-name>
        <servlet-class>com.societe.web.server.ClientServiceImpl</servlet-class>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>clientServiceImpl</servlet-name>
        <url-pattern>/intranet/clientService</url-pattern>
      </servlet-mapping>
     
      <!-- Default page to serve -->
      <welcome-file-list>
        <welcome-file>IntranetSociete.html</welcome-file>
      </welcome-file-list>
     
    </web-app>

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    dans l'interface ClientService
    @RemoteServiceRelativePath("clients")
    dans le web.xml
    clientServiceImpl
    Les deux noms doivent être identiques.

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    J'ai fais correspondre le remoteServiceRelativePath avec le servlet-name dans mon web.xml mais toujours le même problème, le code qui s'exécute ne passe pas dans ma fonction de la classe serviceImpl.

  8. #8
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    As tu :
    @RemoteServiceRelativePath("clientService")

    ce qui importe, ce n'est pas le nom de ta servlet mais son chemin d'accès.

    Dans ton web.xml, on voit que le chemin est "/intranet/clientService"
    Puisque intranet, c'est le nom de ton module (attribut renameTo du fichier gwt.xml), il faut mettre "clientService"

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Je suis paumé, lol....

    J'ai vérifié, renommé et ajusté vis a vis de ce que tu m'as dis benwit et ca ne marche toujours pas. Je poste ici le contenu de mes fichiers:

    .gwt.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="UTF-8"?>
    <module rename-to='intranetLayona'>
     
      <inherits name='com.google.gwt.user.User'/>
     
      <inherits name='com.google.gwt.user.theme.clean.Clean'/>
     
      <entry-point class='com.layona.web.client.IntranetLayona'/>
     
      <source path='client'/>
      <source path='shared'/>
     
    </module>
    Fichier web.xml:
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
     
    <web-app>
     
      <!-- Servlets -->
      <servlet>
        <servlet-name>clientService</servlet-name>
        <servlet-class>com.layona.web.server.ClientServiceImpl</servlet-class>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>clientService</servlet-name>
        <url-pattern>/intranetLayona/clientService</url-pattern>
      </servlet-mapping>
     
      <!-- Default page to serve -->
      <welcome-file-list>
        <welcome-file>IntranetLayona.html</welcome-file>
      </welcome-file-list>
     
    </web-app>
    Classe ClientService:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @RemoteServiceRelativePath("clientService")
    public interface ClientService extends RemoteService {
     
    	public List<Client> getListeClients();
     
    }
    Mes autres fichiers n'ont pas changé, ainsi que l'appel au callback.

    Merci de votre aide mais je patauge et je crois que j'vais devoir revoir le tutorial sur stockwatcher lol

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Par défaut
    J'ai regardé rapidement et je pense qu'il faut que tu change ton constructeur vide client comme sa:
    public Client(){super();}
    Sinon il me semble qu'il y a des bugs avec la serialization.
    Cdt

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Bonjour offnight, merci pour ta réponse.

    En faites depuis le premier post j'ai changé la façon d'appeler ma méthode callback car on m'a dit de la sortir de ma class client qui doit etre un DTO et donc je contenir que les données de l'objet client. Donc je ne pense pas que le point que tu as relevé change quelquechose maintenant :/

    Et après test, effectivement cela ne change pas la donne, je n'arrive toujours pas a appeler ma méthode avec le callback...

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Par défaut
    Tu connais ptetre déjà, mais pour ce qui est de la mise en place de ma 1ere servlet RPC j'ai utilisé ce tuto, et sa à plutot bien marché.
    http://jl2tho.blogspot.com/2007/09/t...ur-gwt-g6.html

  13. #13
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Je confirme, pour le bean Client qui est échangé entre serveur et client, il faut le constructeur par défaut. Il doit être déclaré explicitement si tu le surcharges.

    Quand tu dis que ça ne marche pas ?
    Tu utilises le debugger, avec des points d'arrêts ?
    Et tu n'as pas d'exceptions ?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Merci offnight, je vais aller jeter un coup d'oeil a ce tuto que je ne connais pas

    Benwit, oui effectivement j'utilise le debugger avec des points d'arrêts, et dans ma méthode callback je ne le vois jamais aller dans le onFailure ou le onSuccess, et je ne le vois jamais entrer dans la méthode de ma classe ClientServiceImpl côté serveur.

    Et je n'ai effectivement aucune exception, le module exécute sa méthode onModuleLoad sans exception et puis c'est tout.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Bon bah en comparant mon code et celui du tuto, la seule différence que j'ai vu c'est qu'eux ils ont rajouter une balise servlet dans le fichier .gwt.xml, ce que j'ai fait mais ça n'a rien changer au problème.

    Je suis au bord du gouffre

  16. #16
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    La balise servlet, c'était dans les anciennes versions.
    Plus besoin maintenant.

    Si tu veux, si tu peux faire un zip de ton projet eclipse, je peux jeter un coup d'oeil.
    Si tu as des parties sensibles, tu as qu'à les enlever.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Merci Benwit, gilel m'a déjà proposé cette solution d'aide en message privé je ne vais pas t'embeter avec ca maintenant mais si je suis encore bloqué demain pourquoi pas

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Ah ben gilel vient de me faire un retour et il a trouver la solution a mon problème

    C'était différentes petites erreurs en faites, je poste ici son retour a ce sujet au cas ou ca pourrait aider d'autres personnes (merci encore gilel):

    J'ai réussi à faire fonctionner l'appel à la servlet. Voici ce qui posait souci:

    -fichier IntranetLayona.html ligne 16 remplacer l'existant par: "<script type="text/javascript" language="javascript" src="intranetLayona/intranetLayona.nocache.js"></script>" intranetLayona != intranetlayona

    -fichier IntranetLayona.gwt.xml ligne 10 remplacer l'existant par <servlet class="com.layona.web.server.ClientServiceImpl" path="/clientService"/>, le path de la servlet était "client"

    -fichier IntranetLayona.java ligne 179 et suivantes, ne surtout pas déclarer le service de cette façon c'était bon en gwt 1.5. Je te conseille de lire la doc officielle de GWT (get started). En regardant bien tu verras que ligne 181 il y a un "client" et non un "clientService" qui traine. Avec l'utilisation d'annotation les ligne 181 et 182 sont inutiles. A la place de ce que tu as je te conseille de déclarer ton service dans ta classe entry point de la façon suivante:
    public static final ClientServiceAsync Client_SERVICE = (ClientServiceAsync) GWT.create(ClientService.class);

Discussions similaires

  1. problème lors de l'appel d'une méthode
    Par khadi8 dans le forum Débuter
    Réponses: 6
    Dernier message: 09/04/2013, 07h57
  2. Problème de timeout lors de l'appel d'une méthode Stop
    Par drieu13 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 12/04/2012, 16h53
  3. problème d'appel d'une méthode d'un service web
    Par aida1986 dans le forum Services Web
    Réponses: 15
    Dernier message: 21/05/2010, 15h10
  4. problème lors de l'appel d'une méthode
    Par sfaxian dans le forum VB.NET
    Réponses: 9
    Dernier message: 10/07/2009, 14h39
  5. Réponses: 6
    Dernier message: 24/03/2009, 16h17

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