【问题标题】:Are there any other possible reasons for getting a GWT Serialization Policy exception?是否有任何其他可能的原因导致 GWT 序列化策略异常?
【发布时间】:2011-10-21 02:46:57
【问题描述】:

我已经研究了大约一个星期左右,现在,还没有找到任何东西。我正在使用 GWT、Hibernate 和 Gilead 构建一个应用程序,并且我正在尝试进行一个 rpc 调用,该调用从数据库中加载 LightEntity 对象的列表。这个调用非常有效,直到我对我的 rpc 接口进行了最小的更改——我添加了一个 deleteLightEntity 方法。然后我开始收到这个错误:

Type 'com.blah.shared.DomainObject' was not included in the set of types which can be 
serialized by this SerializationPolicy or its Class object could not be loaded. For 
security purposes, this type will not be serialized."

...这通常是没有无参数构造函数的对象的特征,或者可能没有实现SerializableIsSerializable。除了我的DomainObjects 都这样做。在我将此方法添加到 rpc 之前,它们都可以正常工作。我什至试过删除我添加的方法并重新编译,它似乎不起作用。我还手动删除了生成的 .gwt.rpc 文件,并清除了我的浏览器缓存。如果有人知道什么可能导致这些麻烦,我会很高兴听到它:)

【问题讨论】:

    标签: java hibernate gwt gwt-rpc gilead


    【解决方案1】:

    如果你的类实现了Serializable(而不是IsSerializable),那么只有在RPC接口中引用它时,它才会被包含在序列化策略中,所以请检查一下。 如果您有理由不引用该类,您可以使用this workaround

    此外,由于错误提到了 DomainObject 类,我认为它是您的全局超类,我会尝试使其也实现 SerializableIsSerializable(除了它的子类)。

    如果您向我们展示一些源代码也会有所帮助。

    【讨论】:

    • :) 这非常有帮助,谢谢 - 即 SerializableIsSerializable 之间的区别;我不知道。我最终做的是创建一个包含我所有DomainObjects 的类(不是超类,我只有一堆不同的域对象,它们几乎只是 POJO,所以我觉得不需要包含任何源代码)作为字段,然后让该类实现IsSerializable而不是Serializable。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2011-09-30
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多