gpt4 book ai didi

java - 如何将类型添加到 GWT 的序列化策略白名单?

转载 作者:IT老高 更新时间:2023-10-28 20:53:45 24 4
gpt4 key购买 nike

GWT 的序列化程序对 java.io.Serializable 的支持有限,但出于安全原因,它支持的类型有一个白名单。我找到的文档,例如 this FAQ entry说您要序列化的任何类型“必须包含在序列化策略白名单中”,并且该列表是在编译时生成的,但没有解释编译器如何决定白名单上的内容。

生成的列表包含许多属于标准库的类型,例如 java.lang.Stringjava.util.HashMap。尝试序列化 java.sql.Date 时出现错误,它实现了 Serializable 接口(interface),但不在白名单上。如何将此类型添加到列表中?

最佳答案

有一个解决方法:定义一个新的 Dummy 类,其中包含您希望包含在序列化中的所有类型的成员字段。然后在你的 RPC 接口(interface)中添加一个方法:

Dummy dummy(Dummy d);

实现就是这样:

Dummy dummy(Dummy d) { return d; }

而且异步接口(interface)会有这个:

void dummy(Dummy d, AsyncCallback< Dummy> callback);

GWT 编译器会选择这个,并且因为 Dummy 类引用了这些类型,它会将它们包含在白名单中。

示例 Dummy 类:

public class Dummy implements IsSerializable {
private java.sql.Date d;
}

关于java - 如何将类型添加到 GWT 的序列化策略白名单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com