J'ai rencontré un problème basé sur M13. Aidez-moi s'il vous plaît à le réparer. avez-vous un moyen commun d'ajouter toute la classe dans la liste blanche?
i utilisé customCriteria comme ci-dessous:
val customCriteria1 = QueryCriteria.VaultCustomQueryCriteria(builder{ LegalContractSchemaV1.PersistentLegalContractState::contractTitle.equal(test.legalEntity)})
c'est mon whitelist.
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)
}
journaux comme ci-dessous:
Exception dans le thread "principal" com.esotericsoftware.kryo.KryoException: classe com.legalcontract.client.LegalContractClientRPC $ getLegalSearchEntities $ customCriteria1 1 $ 1 $ ne sont pas annotées ou sur la liste blanche, donc ne peut pas être utilisé dans la sérialisation Sérialisation trace: propriété (net.corda.core.node.services.vault.Column $ Kotlin) colonne (net.corda.core.node.services.vault.CriteriaExpression $ ColumnPredicateExpression) expression (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) à com.esotericsoftware.kryo. Kryo.getRegistration (Kryo.java:488) à net.corda.nodeapi.RPCKryo.getRegistration (RPCStructures.kt: 74) à 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) à com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write (CompatibleFieldSerializer.java:66) à com.esotericsoftware.kryo.Kr yo.writeObject (Kryo.java:575) à com.esotericsoftware.kryo.serializers.ObjectField.write (ObjectField.java:80) à com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write (CompatibleFieldSerializer.java:66) à com.esotericsoftware.kryo.Kryo.writeObject (Kryo.java:575) à com.esotericsoftware.kryo.serializers.ObjectField.write (ObjectField.java:80) à com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer. écrire (CompatibleFieldSerializer.java:66) à com.esotericsoftware.kryo.Kryo.writeObject (Kryo.java:575) à com.esotericsoftware.kryo.serializers.ObjectField.write (ObjectField.java:80) à com. esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write (CompatibleFieldSerializer.java:66) à com.esotericsoftware.kryo.Kryo.writeClassAndObject (Kryo.java:651) à com.esotericsoftware.kryo.serializers.CollectionSerializer.write (CollectionSerializer.java:100) à com.esotericsoftware.kryo.serializers.CollectionSerializer. écrire (CollectionSerializer.java:40) à com.esotericsoftware.kryo.Kryo.writeClassAndObject (Kryo.java:651) à net.corda.core.serialization.KryoKt.serialize (Kryo.kt: 169) à net. corda.core.serialization.KryoKt $ sérialiser $ 1.execute (Kryo.kt: 151) à net.corda.core.serialization.KryoKt $ sérialiser $ 1.execute (Kryo.kt) à com.esotericsoftware.kryo.pool. KryoPoolQueueImpl.run (KryoPoolQueueImpl.java:61) à net.corda.core.serialization.KryoKt.serialize (Kryo.kt: 151) à net.c orda.core.serialization.KryoKt.serialize $ default (Kryo.kt: 150) à net.corda.nodeapi.RPCApi $ ClientToServer $ RpcRequest.writeToClientMessage (RPCApi.kt: 103) à net.corda.client.rpc. internal.RPCClientProxyHandler.invoke (RPCClientProxyHandler.kt: 197) à com.sun.proxy Proxy21.vaultQueryByCriteria $ (Source inconnue) à com.legalcontract.client.LegalContractClientRPC.getLegalSearchEntities (LegalContractClientRPC.kt 106) à com.legalcontract.client.LegalContractClientRPC.main (. LegalContractClientRPC.kt: 68) à com.legalcontract.client.LegalContractClientRPCKt.main (LegalContractClientRPC.kt: 39)