服务器端,我构造了一个java.util.Hashmap,用值填充它(键和值都是String)并通过异步回调将其传递回客户端。当它回到客户端时它是空的。
我可以用一个仅在一个地方服务器端使用的网络新hashmap复制它。 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!");
}
}
答案 0 :(得分:0)
问题解决了。 Eclipse保存操作使得地图最终成为可能,从而阻止了序列化。当我删除最终修饰符(并阻止Eclipse将其添加回来)时,我能够在客户端看到地图的内容。