添加java.util.Date作为流抛出的输入错误日期未注释或在白名单上

时间:2018-04-30 15:52:59

标签: corda

我正在尝试将java.util.Date类型变量添加为流的输入。它不接受并抱怨不可序列化。我怎样才能解决这个问题。我看到Date不是DefaultSerializable类的一部分。

我发现我甚至无法从保险库中检索日期类型字段。看到相同的错误。

有没有办法让java util Date Serializable?

1 个答案:

答案 0 :(得分:3)

您要将java.util.Date或您使用的日期列入白名单。

创建一个文件夹结构,如:

  

资源> META-INF>       服务>       net.corda.core.serialization.SerializationWhitelist.txt       在您的服务文件夹下。

现在创建一个类,如下所示,使其实现SerializationWhitelist,并在getWhitelist方法中输入要列入白名单的所有类的名称。

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文件中,提及包括包名称的完整类名 例如:com.sc.corda.node.util.SerializationWhiteList。

在引导时,Corda会查找此处提到的类将白名单