我希望能够将java.util.Date
传递给模型中的CORDA API端点
模型
public final class Message{
public Date birthday;
public Message(Date birthday) {
this.birthday = birthday;
}
private Message() {
// This is only here so the serializer can spin up a new instance.
}
public Date getBirthday() {
return birthday;
}
}
API
@Path("foo")
public final class FooApi {
@PUT
@Path("bar")
@Produces(MediaType.APPLICATION_JSON)
public Response putBar(Message m) {
// Some logic here
return Response.ok("Successful").build();
}
}
问题在于,当我提交Date
时,我得到了这个:
Classjava.util.Dateisnotannotatedoronthewhitelist, socannotbeusedinserializationSerializationtrace: closeDate(com.template.messages.Message)
如何将Date
列入白名单?
答案 0 :(得分:1)
在Corda 1之后,您需要创建一个实现SerializationWhitelist
接口的类。其定义为:
interface SerializationWhitelist {
val whitelist: List<Class<*>>
}
示例实现可能是:
class Plugin : SerializationWhitelist {
override val whitelist: List<Class<*>> get() = listOf(
TransactionBuilder::class.java
)
}
在META-INF.services
中,您需要一个名为net.corda.core.serialization.SerializationWhitelist
的文件,在该文件中放置实现SerializationWhitelist
的类的完全限定类名。
干杯