错误:getLegalSearchEntities $ customCriteria1 $ 1 $ 1没有注释或在白名单

我遇到了一个基于M13的问题。 请帮我解决它。 你有没有一个通用的方式来将所有的课程都添加到白名单中?

我使用customCriteria如下:

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不在注释列表或白名单中,因此不能在序列化中使用序列化跟踪:property(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)at net.corda.core.serialization.CordaClassResolver.checkClass(CordaClassResolver.kt:65)at 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)在com.esotericsoftware.kryo。 Kryo.writeClass(Kryo.java:540)com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:76)at 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)at 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。编写(CompatibleFieldSerializer.java:66)在com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)在com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)在com.esotericsoftware.kryo com.esotericsoftware.kryo.Kryo上的.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:66)。 writeClassAndObject(Kryo.java:651)at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100)at 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)at com.esotericsoftware.kryo.pool.KryoPoolQueueImpl.run(KryoPoolQueueImpl.java:61)at net.corda.core。在net.corda.core.serialization.KryoKt.serialize上的serialization.KryoKt.serialize(Kryo.kt:151)net.corda.nodeapi.RPCApi $ ClientToServer $ RpcRequest.writeToClientMessage(RPCApi.KryoKt.serialize $ default(Kryo.kt:150) kt:103)at com.call.client.rpc.internal.RPCClientProxyHandler.invoke(RPCClientProxyHandler.kt:197)at com.sun.proxy。$ Proxy21.vaultQueryByCriteria(Unknown Source)at com.legalcontract.client.LegalCont (com.legalcontract.client.LegalContractClientRPCKt.main(LegalContractClientRPC.kt:39))上的com.legalcontract.client.LegalContractClientRPC.main(LegalContractClientRPC.kt:68)处的ractClientRPC.getLegalSearchEntities(LegalContractClientRPC.kt:106)

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

Interesting Posts