添加 java.util.Date 作为流的输入会抛出错误日期未注释或在白名单中
Adding java.util.Date as input for flow throws error date is not annotated or on the whitelist
我正在尝试添加 java.util.Date 类型变量作为流的输入。它不接受并抱怨不可序列化。我怎样才能解决这个问题。我看到 Date 不是 DefaultSerializable class 的一部分。
我发现我什至无法从保险库中检索日期类型的字段。看到同样的错误。
有什么方法可以让 java util Date Serializable 吗?
您必须将 java.util.Date 或您使用的任何日期列入白名单。
创建如下文件夹结构:
resources>META-INF>
services>
net.corda.core.serialization.SerializationWhitelist.txt
under your services folder.
现在如下所示创建一个 class 并使其实现 SerializationWhitelist 并在 getWhitelist 方法中输入所有要加入白名单的 class 的名称。
public class SerializationWhiteList implements SerializationWhitelist {
@NotNull
@Override
public List<Class<?>> getWhitelist() {
return ImmutableList.of(HashSet.class, java.sql.Date.class, java.util.Date.class,
Instant.class);
}
}
在您的 SerializationWhitelist.txt 文件中提及完整的 class 名称,包括软件包名称
例如:com.sc.corda.node.util.SerializationWhiteList.
在启动时,Corda 会查找此处提到的 classes 并将它们列入白名单
我正在尝试添加 java.util.Date 类型变量作为流的输入。它不接受并抱怨不可序列化。我怎样才能解决这个问题。我看到 Date 不是 DefaultSerializable class 的一部分。
我发现我什至无法从保险库中检索日期类型的字段。看到同样的错误。
有什么方法可以让 java util Date Serializable 吗?
您必须将 java.util.Date 或您使用的任何日期列入白名单。
创建如下文件夹结构:
resources>META-INF> services> net.corda.core.serialization.SerializationWhitelist.txt under your services folder.
现在如下所示创建一个 class 并使其实现 SerializationWhitelist 并在 getWhitelist 方法中输入所有要加入白名单的 class 的名称。
public class SerializationWhiteList implements SerializationWhitelist {
@NotNull
@Override
public List<Class<?>> getWhitelist() {
return ImmutableList.of(HashSet.class, java.sql.Date.class, java.util.Date.class,
Instant.class);
}
}
在您的 SerializationWhitelist.txt 文件中提及完整的 class 名称,包括软件包名称 例如:com.sc.corda.node.util.SerializationWhiteList.
在启动时,Corda 会查找此处提到的 classes 并将它们列入白名单