错误:getLegalSearchEntities$customCriteria1$1$1 未注释或在白名单上



我遇到了一个基于 M13 的问题。请帮我修复它。您是否有将所有类添加到白名单的常用方法?

我使用了自定义标准,如下所示:

val customCriteria1 = QueryCriteria.VaultCustomQueryCriteria( builder{ LegalContractSchemaV1.PersistentLegalContractState::contractTitle.equal(test.legalEntity)})

这是我的白名单。

class AppPlugin: CordaPluginRegistry() {
override fun customizeSerialization(custom: SerializationCustomization): Boolean {
custom.apply {
// OpenGamma classes.
addToWhitelist(LegalContractSchemaV1.PersistentLegalContractState::class.java)
addToWhitelist(QueryCriteria.VaultCustomQueryCriteria::class.java)
//  addToWhitelist(net.corda.core.node.services.vault.
}
return true
}
override val requiredSchemas: Set<MappedSchema> get() = setOf(com.legalcontract.schema.LegalContractSchemaV1) 
}

日志如下:

线程"main"中的异常 com.esotericsoftware.kryo.KryoException: 类 com.legalcontract.client.LegalContractClientRPC$getLegalSearchEntities$customCriteria1$1$1 未添加注释或在白名单中,因此不能用于 序列化 序列化跟踪:属性 (net.corda.core.node.services.vault.Column$Kotlin( 列 (net.corda.core.node.services.vault.CriteriaExpression$ColumnPredicateExpression( 表达 (net.corda.core.node.services.vault.QueryCriteria$VaultCustomQueryCriteria( b (net.corda.core.node.services.vault.QueryCriteria$AndComposition( 在 net.corda.core.serialization.CordaClassResolver.checkClass(CordaClassResolver.kt:65( 在 net.corda.core.serialization.CordaClassResolver.getRegistration(CordaClassResolver.kt:35( at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:488( at net.corda.nodeapi.RPCKryo.getRegistration(RPCStructures.kt:74( at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:97( at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:540( at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:76( 在 com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:66( at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575( at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80( 在 com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:66( at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575( at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80( 在 com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:66( at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575( at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80( 在 com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:66( at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651( 在 com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100( 在 com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:40( at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651( at net.corda.core.serialization.KryoKt.serialize(Kryo.kt:169( at net.corda.core.serialization.KryoKt$serialize$1.execute(Kryo.kt:151( at net.corda.core.serialization.KryoKt$serialize$1.execute(Kryo.kt( 在 com.esotericsoftware.kryo.pool.KryoPoolQueueImpl.run(KryoPoolQueueImpl.java:61( at net.corda.core.serialization.KryoKt.serialize(Kryo.kt:151( at net.corda.core.serialization.KryoKt.serialize$default(Kryo.kt:150( at net.corda.nodeapi.RPCApi$ClientToServer$RpcRequest.writeToClientMessage(RPCApi.kt:103( 在 net.corda.client.rpc.internal.RPCClientProxyHandler.invoke(RPCClientProxyHandler.kt:197( at com.sun.proxy.$Proxy 21.vaultQueryByCriteria(Unknown Source( at com.legalcontract.client.LegalContractClientRPC.getLegalSearchEntities(LegalContractClientRPC.kt:106( 在 com.legalcontract.client.LegalContractClientRPC.main(LegalContractClientRPC.kt:68( 在 com.legalcontract.client.LegalContractClientRPCKt.main(LegalContractClientRPC.kt:39(

不幸的是,这是 M13 的一个已知错误,即 RPC 的白名单未正确加载。M14将于今天发布,将解决此问题。

最新更新