GWT异步回调时Hashmap为空

时间:2015-07-23 21:21:17

标签: java gwt

服务器端,我构造了一个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!");
    }

} 

1 个答案:

答案 0 :(得分:0)

问题解决了。 Eclipse保存操作使得地图最终成为可能,从而阻止了序列化。当我删除最终修饰符(并阻止Eclipse将其添加回来)时,我能够在客户端看到地图的内容。