El envío de un ArrayList como un parámetro en GWT-RPC
Pregunta
He intentado enviar un ArrayList a un servicio RPC en GWT, pero sigue fallando. Aquí está mi 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 es un objeto simple con ningún método, y qcList es 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;
}
}
Alguien ha intentado enviar un ArrayList como un parámetro en GWT-RPC? Si lo hace, intenta colocar el código de ejemplo aquí. Gracias.
Solución
Sí, es posible enviar un ArrayList como un parámetro en la llamada GWT-RPC. Al desarrollar el código GWT-RPC, muchas veces se pueden producir errores cuando una solicitud de GWT-RPC es invocado, esto se debe a un cambio en el servicio GWT-RPC que pueden no haber sido corresponde a los clientes compilados GWT-RPC definición. Para resolver este problema tiene que reiniciar el servidor de desarrollo cada vez que hay algún cambio de códigos en las clases del lado del servidor, o en el servicio de Defintion GWT-RPC (es decir GreetingService, GreetingServiceAsync y en GreetingServiceImpl)
Otros consejos
Si está utilizando GWT 1.5 y Java 1.6, el problema es la anotación @ Override, usted no está realmente sustituir un método, se está implementando. Deshacerse de la anotación y todo debería ir bien.