GWT RPC SerializationException

时间:2012-04-05 01:06:32

标签: java gwt serialization gwt-rpc objectify

我正在尝试通过GWT RPC(GWT 2.4)发送一个对象。该对象包括一个对象,该对象包括以下字段:

@Serialized
private Map<Class<? extends Foo>, Foo> fooMap = ImmutableMap.of(); 

Foo定义为:

public interface Foo extends Serializable {

}

fooMap为空时,它可以正常工作。填充后,GWT RPC失败并显示SerializationException。 (服务器永远不会被命中。)Foo中唯一的fooMap类型来自此类:

public class FooImpl implements Foo {

  private static final long serialVersionUID = 1L;

  private long bar;
  private float baz;
  private int batz;

  ... 
}

我做错了什么? FooImpl不应该导致任何问题。每个类都有一个无参数的构造函数。对于每个序列化对象的每个私有字段,我都不需要getter和setter,对吧? Class<? extends Foo>有问题吗?

1 个答案:

答案 0 :(得分:2)

Class<? extends Foo>很可能是个问题。据我所知,GWT根本不知道如何序列化 - 反序列化Class实例(它的代码仅用于序列化普通对象,枚举和数组,而且没有CustomFieldSerializer)。因此,尝试使用类名而不是Class个实例。