在我的 Google Web Toolkit 项目中,出现以下错误:
com.google.gwt.user.client.rpc.SerializationException:类型“your.class.Type”未包含在可由此 SerializationPolicy 序列化的类型集中,或者无法加载其 Class 对象。出于安全目的,此类型不会被序列化。
此错误的可能原因是什么?
最佳答案
GWT 跟踪一组可以序列化并发送到客户端的类型。 your.class.Type
显然不在这个名单上。像这样的列表存储在 .gwt.rpc
文件。这些列表已生成,因此编辑这些列表可能没有用。这些列表是如何生成的有点不清楚,但你可以尝试以下方法:
your.class.Type
实现 java.io.Serializable
your.class.Type
有一个公共(public)的无参数构造函数 your.class.Type
的成员做同样的事情ArrayList<Object>
.如果这样的集合包含 your.class.Type
并且被序列化了,就会出现这个错误。 your.class.Type
实现IsSerializable
.此标记接口(interface)专门用于应发送到客户端的类。这对我不起作用,但我的类(class)也实现了 Serializable
,所以也许这两个接口(interface)不能很好地协同工作。 your.class.Type
创建一个虚拟类。作为成员,并向您的 RPC 接口(interface)添加一个获取和返回虚拟对象的方法。这会强制 GWT 编译器将虚拟类及其成员添加到序列化白名单中。 关于序列化异常 : type not included in serializable type set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5210696/