2017-08-03 44 views
0

我遇到了基于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) 
} 

日志如下:
异常在线程 “主” com.esotericsoftware.kryo.KryoException:类com.legalcontract.client.LegalContractClientRPC $ $ getLegalSearchEntities customCriteria1 $ 1 $ 1未注释的或在白名单中,因此不能用于序列化 序列化跟踪: 属性(net.corda.core.node.services.vault.Column $ Kotlin) column(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 $和组成) 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) at在com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:76) com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write( CompatibleFieldSerializer.java:66) at com.esotericsoftware.kryo.Kr yo.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) at 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) 在融为一体。 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。写入(CollectionSerializer.java:40) at net.corda.core.serialization.KryoKt.serialize(Kryo.kt:169) at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651) 。 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。在net.corda.core.serialization.KryoKt.serialize(Kryo.kt:151)处的KryoPoolQueueImpl.run(KryoPoolQueueImpl.java:61) at net.c在net.corda.nodeapi.RPCApi $ ClientToServer $ RpcRequest.writeToClientMessage(RPCApi.kt:103) at net.corda.client.rpc处,使用$ default(Kryo.kt:150) 。 internal.RPCClientProxyHandler.invoke(RPCClientProxyHandler。KT:197)在 com.sun.proxy Proxy21.vaultQueryByCriteria $(来源不明)在 com.legalcontract.client.LegalContractClientRPC.getLegalSearchEntities(LegalContractClientRPC.kt 106) 在com.legalcontract.client.LegalContractClientRPC.main(。 LegalContractClientRPC.kt:68)在 com.legalcontract.client.LegalContractClientRPCKt.main(LegalContractClientRPC.kt:39)

回答

0

不幸的是,这是一个已知的错误与M13,由此白名单没有装到正确的RPC。预计今天发布的M14将解决这个问题。