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 :

Attente d'une réponse RPC?


Sujet :

GWT et Vaadin Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Par défaut Attente d'une réponse RPC?
    Bonjour à tous,

    je bloque depuis quelques temps sur un petit problèmes.
    J'ai une classe Home qui a un attribut listeDocuments que je voudrais récupérer depuis une réponse du serveur. Le problème c'est que mon code s'exécute avant que la méthode onSuccess puisse remplir la liste de documents à partir de la réponse du serveur.

    Voici le code de ma méthode:
    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
     
    private Object[][] getDocumentDataRemote(){
     
    		final AsyncCallback<List<String>> callback = new AsyncCallback<List<String>>() {
     
    			public void onFailure(Throwable caught) {
    				MessageBox.alert("Remote Procedure Call - Failure");
    			}
     
    			public void onSuccess(List<String> list){
    				int i = 0;
    				documentList = new Object[list.size()][];
     
    				System.out.println("list size: "+list.size());
     
    				for(String d : list){
     
    					documentList[i] = new Object[]{d,"url", d, d};
    					System.out.println("1"+documentList[1][1]);
    					i++;
    				}
    			}
    		};
     
    		homeService.searchDocument(callback);
    		System.out.println("2 "+documentList);
    		return documentList;
    	}
    Il m'affiche :
    2 null
    list size 3


    Ya t il un moyen de forcer l'exécution de la méthode onSuccess avant que ma méthode ne renvoi son résultat?

    Cordialement

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Par défaut
    C'est vraiment urgent. Si vous avez besoin de plus de détails n'hésitez surtout pas. Je vais être connecté demain toute la journée pour répondre à la moindre intervention.

    Merci beaucoup.

  3. #3
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Bonjour,

    Comme l'indique son nom, ce sont des appels asynchrones (AsyncCallback).

    Est-ce que la méthode getDocumentDataRemote() est côté serveur ou côté client ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Par défaut
    Coté client. et elle récupère les documents depuis le serveur.

    J'ai changé un petit peu mon code pour contourner ce problème, vu la contrainte de temps mais ce n'est pas très propre:

    En fait, avant d'afficher le Home, je me log. Dans le onSuccess correspondant au logging et qui doit appeler la méthode setHome() qui prend en charge l'affichage de la grille des document, j'ai appelé à la place (de setHome()) la méthode getDocumentDataRemote() et c'est dans le onSuccess de cette méthode que j'appel le setHome().

    Voici mon 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
    25
    26
    27
    public void getDocumentDataRemote(){
    		ServiceDefTarget endpoint = ( ServiceDefTarget )homeService;
    		String moduleRelativeURL = GWT.getModuleBaseURL()+"home";
    		endpoint.setServiceEntryPoint( moduleRelativeURL );
     
    		final AsyncCallback<List<Document>> callback = new AsyncCallback<List<Document>>() {
     
    			public void onFailure(Throwable caught) {
    				MessageBox.alert("Remote Procedure Call - Failure");
    			}
     
    			public void onSuccess(List<Document> list){
    				int i = 0;
    				Object[][] documentList = new Object[list.size()][];
     
    				for(Document d : list){
    					documentList[i] = new Object[]{d.getTitle(), d.getPath(), d.getPubDate(), d.getDescription()};
    					//documentList[i] = new Object[]{d,"url", d, d};
    					i++;
    				}
    				grid = new DocumentGrid().generateDocumentGrid(documentList);
    				setHome();
    			}
    		};
     
    		homeService.searchDocument(callback);
    	}
    C'est la méthode searchDocument qui est coté serveur.

    Je ne sais pas si la seule façon de faire, mais ça reste une solution temporaire. Mais, comme je l'ai dit, n'est pas trop propre. Ce n'est pas ce que je cherche à faire surtout que mon home doit contenir divers widget contenant plusieurs type de données...

Discussions similaires

  1. Comment recevoir rapidement une réponse à votre question ?
    Par Community Management dans le forum Windows
    Réponses: 3
    Dernier message: 17/08/2014, 02h28
  2. Délai d'attente d'une réponse
    Par _PaTaTe_ dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 02/10/2013, 23h44
  3. [XML] [XML-RPC] retrouver les infos d'une réponse serveur
    Par arnolem dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/08/2006, 12h07
  4. Activation d'un champ en fonction d'une réponse
    Par soso78 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/05/2005, 09h59

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