Enviando um ArrayList como um parâmetro no GWT-RPC
Pergunta
Tentei enviar um ArrayList para um serviço RPC no GWT, mas continua falhando. Aqui está o meu fragmento de código
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 é um objeto simples sem método, e Qclist é um Arraylist of 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;
}
}
Alguém já tentou enviar um ArrayList como um parâmetro no GWT-RPC? Se o fizer, tente postar seu código de exemplo aqui. Obrigada.
Solução
Sim, é possível enviar um Arraylist como um parâmetro na chamada GWT-RPC. Ao desenvolver o código GWT-RPC, muitas vezes você pode encontrar erros quando uma solicitação no GWT-RPC for invocada, isso se deve a uma alteração no serviço GWT-RPC que pode não ter sido correspondente aos clientes compilados GWT-RPC definição. Para resolver esse problema, você precisa reiniciar seu servidor de desenvolvimento sempre que alterar seus códigos nas classes do lado do servidor, ou na definição de serviço GWT-RPC (ou seja, GreetingService, GreetingServiceasync e no GreetingServiceImpl)
Outras dicas
Se você estiver usando o GWT 1.5 e o Java 1.6, o problema é a anotação @Override, você não está realmente substituindo um método, está implementando. Livre -se da anotação e tudo deve correr bem.