Corda 4.0事务序列化问题 [英] Corda 4.0 transaction serialization issue
问题描述
最近已升级到Corda 4.0,现在在尝试创建事务时看到序列化异常:
Having recently upgraded to Corda 4.0 we are now seeing a serialization exception when trying to create transactions:
[错误] 10:09:49,500 [模拟网络] amqp.SerializationOutput.--序列化失败direction ="Serialize",type ="net.corda.core.transactions.TraversableTransaction",msg =为参数命令定义的吸气剂,返回类型java.util.List>尚未发布类型是java.util.List>,ClassChain ="net.corda.core.transactions.TraversableTransaction"{actor_id =仅用于测试,actor_owning_identity = O =供应商1,L =伦敦,C = GB,actor_store_id = TEST,fibre-id = 10000001,flow-id = e61b7da7-6826-4410-9414-1c03bebbc3fe,invocation_id = 58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06,invocation_timestamp = 2019-03-28T10:09:46.205Z,origin =仅用于测试,session_id = 58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06,session_timestamp = 2019-03-28T10:09:46.205Z,thread-id = 400}
[ERROR] 10:09:49,500 [Mock network] amqp.SerializationOutput. - Serialization failed direction="Serialize", type="net.corda.core.transactions.TraversableTransaction", msg="Defined getter for parameter commands returns type java.util.List> yet underlying type is java.util.List>", ClassChain="net.corda.core.transactions.TraversableTransaction" {actor_id=Only For Testing, actor_owning_identity=O=Supplier 1, L=London, C=GB, actor_store_id=TEST, fiber-id=10000001, flow-id=e61b7da7-6826-4410-9414-1c03bebbc3fe, invocation_id=58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06, invocation_timestamp=2019-03-28T10:09:46.205Z, origin=Only For Testing, session_id=58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06, session_timestamp=2019-03-28T10:09:46.205Z, thread-id=400}
任何想法是什么原因造成的?
Any ideas what causes this?
推荐答案
每次在Corda 4上看到这种形式的错误消息:
Anytime you see an error message of this form on Corda 4:
为参数[参数名称]定义的吸气剂返回类型[type]基本类型是[完全相同的类型]
Defined getter for parameter [parameter name] returns type [type] yet underlying type is [exactly the same type]
这是由某些番石榴版本中的错误引起的.
It's caused by a bug in certain versions of Guava.
Corda 4使用Guava版本 25.1-jre
.但是,如果您的节点加载了另一个覆盖了Corda的Java版本的Guava版本(例如 21.0
),则会看到此错误.
Corda 4 uses Guava version 25.1-jre
. However, if your node loads another version of Guava (e.g. 21.0
) that overrides Corda's version of Java, you will see this error.
计划对Corda 4.1进行修复.
A fix is planned for Corda 4.1.
这篇关于Corda 4.0事务序列化问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!