2009-12-18 12 views
2

J'ai essayé d'envoyer une ArrayList à un service RPC dans GWT mais je continue d'échouer. Voici mon fragment de codeEnvoi d'une ArrayList en tant que paramètre dans GWT-RPC

   greetingService.addNewQuestion(questionnaireKey, questionText, qcList, new AsyncCallback<Boolean>(){ 
       @Override 
       public void onFailure(Throwable caught) { 
        Window.alert("Something went wrong!\n"+caught.getMessage()); 

       } 
       @Override 
       public void onSuccess(Boolean result) { 
        Window.alert("Question Added!"); 
       } 

      }); 

QuestionChoice est un objet simple, sans méthode et qcList est un ArrayList de QuestionChoice

public class QuestionChoice implements IsSerializable{ 
/** 
* 
*/ 
private static final long serialVersionUID = 5668640935838672293L; 
public String text; 
public boolean isCorrect; 

public QuestionChoice(){ 

} 
public QuestionChoice(String text, boolean isCorrect){ 
    this.text = text; 
    this.isCorrect = isCorrect; 
} 

}

Quelqu'un at-il essayé d'envoyer un ArrayList comme paramètre dans GWT-RPC? Si vous le faites, s'il vous plaît essayez de poster votre code d'échantillon ici. Merci.

+0

Oui.Il est possible d'envoyer ArrayList dans GWT Rpc.je pense qu'il n'y a pas de faute dans votre code.Pouvez-vous s'il vous plaît poster l'erreur que vous obtenez. – DonX

+0

Pouvez-vous publier la signature de addNewQuestion de GreetingService? Et l'erreur que vous obtenez (échoue-t-elle à la compilation ou à l'exécution?) –

+0

Salut les gars, je suppose que l'erreur est dans mon environnement de développement. Peut-être était-ce le manque d'actualisation du projet, le nettoyage du projet, la reconstruction, la compilation GWT et le rechargement du moteur de l'application. Hier après avoir posté la question, j'ai fait un tweak en utilisant ArrayList au lieu de ArrayList . Ce matin, alors que je revenais sur stackoverflow (nouvel utilisateur), ImJasonH exigeant la signature de la méthode "addNewQuestion", j'ai réalisé que j'avais tellement déformé mon code que je devais le reconstruire tel quel, mais à ma grande surprise. ça a marché maintenant! Il envoie l'objet ArrayList au serveur. Merci les gars :) – ivanceras

Répondre

3

Oui, il est possible d'envoyer une ArrayList en tant que paramètre dans l'appel GWT-RPC. Lors du développement du code GWT-RPC, vous risquez souvent de rencontrer des erreurs lors de l'appel d'une requête dans GWT-RPC, ceci est dû à une modification du service GWT-RPC qui peut ne pas correspondre aux clients compilés GWT-RPC définition. Pour résoudre ce problème, vous devez redémarrer votre serveur de développement chaque fois que vous avez modifié vos codes dans les classes côté serveur ou dans la définition du service GWT-RPC (GreetingService, GreetingServiceAsync et GreetingServiceImpl)

1

Si vous utilisez GWT 1.5 et Java 1.6, le problème est l'annotation @Override, vous ne remplacez pas vraiment une méthode que vous implémentez. Débarrassez-vous de l'annotation et tout devrait bien se passer.

+1

Au niveau de la langue java 1.6 L'annotation @Override est autorisée pour implémenter la méthode d'interface aussi.ivanceras peut utiliser le niveau de langage java 1.6. – DonX

+0

Ok, mais GWT s'en plaint. Lorsque vous utilisez @Override sur une méthode implémentée, une erreur apparaît sur le shell du développeur. Eh bien, au moins ça arrive avec moi. – Isac

+0

En fait, ce problème se produit si vous utilisez GWT 1.5 et Java 1.6. Désolé pour ça. – Isac