На стороне сервера, я создаю java.util.Hashmap, заполняю его значениями (ключ и значение являются строками) и передают его обратно клиенту с помощью обратного вызова async. Он пуст, когда он возвращается на клиентскую сторону.Hashmap пуст на обратном вызове GWT async
Я могу реплицировать это с помощью нового нового хэшмапа, который используется только в одном месте на стороне сервера. Java 6 и GWT обслуживание сторона 2,7
Сервер:
public class Service extends RemoteServiceServlet implements IService {
public Model buildModel() {
Model model = new Model();
model.addItemToMyMap("key", "value");
return model;
}
}
Модель:
public class Model implements Serializable {
private Map<String, String> myMap = new HashMap<String, String>();
public void addItemToMyMap(String key, String value) {
if(key != null) {
myMap.put(key, value);
}
}
public Map<String, String> getMyMap() {
return myMap;
}
}
Асинхронный интерфейс:
public interface IServiceAsync {
public void buildModel(AsyncCallback<Model> callback); {
}
стороне клиента:
service.buildModel(new AsyncCallback<Model>() {
public void onSuccess(Model model) {
logger.warning(model.getMyMap().size());
}
public void onFailure(Throwable caught) {
logger.warning("ERROR!");
}
}
Im не 100% на этом, но я уверен, что вашей «Модели» необходимо реализовать интерфейс «Serializable». –
Неплохо, я просто забыл включить его. Другие примитивные и строковые свойства прекрасны. – AfterWorkGuinness
Вы имели в виду, что класс 'Model' должен реализовывать интерфейс' IsSerializable', не так ли? – StephaneM