Corda 4.0事务序列化问题

Corda 4.0事务序列化问题,corda,Corda,最近升级到Corda 4.0后,我们现在在尝试创建事务时看到序列化异常: [错误]10:09:49500[模拟网络]amqp.SerializationOutput- 序列化失败direction=“Serialize”, type=“net.corda.core.transactions.TraversableTransaction”, msg=“参数命令的已定义getter返回类型 java.util.List>还未成为基础 类型为java.util.List>“, ClassChain=“

最近升级到Corda 4.0后,我们现在在尝试创建事务时看到序列化异常:

[错误]10:09:49500[模拟网络]amqp.SerializationOutput- 序列化失败direction=“Serialize”, type=“net.corda.core.transactions.TraversableTransaction”, msg=“参数命令的已定义getter返回类型 java.util.List>还未成为基础 类型为java.util.List>“, ClassChain=“net.corda.core.transactions.TraversableTransaction” {actor_id=仅用于测试,actor_拥有_identity=O=供应商1, L=伦敦,C=GB,参与者商店id=测试,光纤id=10000001, 流量id=e61b7da7-6826-4410-9414-1c03bebbc3fe, 调用id=58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06, 调用时间戳=2019-03-28810:09:46.205Z,原点=仅适用于 测试,会话id=58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06, 会话_时间戳=2019-03-28810:09:46.205Z,线程id=400}


你知道这是什么原因吗?

升级到4.0后,我也遇到了这个问题。我的流将事务作为输出返回,我得到了TraversableTransaction序列化异常。我没有解决它。我已经用所有适当的数据创建了流响应DTO,trxId等

例如:

SignedTransaction signedTransaction = subFlow(new FinalityFlow(signedTx, session));
response.setTrxId(signedTransaction.getId().toString());
return response;

升级到4.0后,我也遇到了这个问题。我的流将事务作为输出返回,我得到了TraversableTransaction序列化异常。我没有解决它。我已经用所有适当的数据创建了流响应DTO,trxId等

例如:

SignedTransaction signedTransaction = subFlow(new FinalityFlow(signedTx, session));
response.setTrxId(signedTransaction.getId().toString());
return response;

只要您在Corda 4上看到此表单的错误消息:

为参数[parameter name]定义的getter返回类型[type] 基础类型[完全相同的类型]

它是由番石榴的某些版本中的一个bug引起的

Corda 4使用Guava版本
25.1-jre
。但是,如果您的节点加载了另一个版本的Guava(例如,
21.0
),覆盖了Corda的Java版本,您将看到此错误


Corda 4.1计划进行修复。

只要您在Corda 4上看到此表单的错误消息:

为参数[parameter name]定义的getter返回类型[type] 基础类型[完全相同的类型]

它是由番石榴的某些版本中的一个bug引起的

Corda 4使用Guava版本
25.1-jre
。但是,如果您的节点加载了另一个版本的Guava(例如,
21.0
),覆盖了Corda的Java版本,您将看到此错误


Corda 4.1计划进行修复。

我在Corda 4.3中遇到了类似的错误。我尝试使用oracle为我的cordapp过滤事务,效果很好。但是如果我在与oracle签署tx后使用send或sendAndReceive。我要。。。。序列化失败direction=“Deserialize”,type=“java.util.List”,msg=“Descripted type with descriptor net.corda:1f2tmsdgsu106jed1w0vJw==应为接口java.util.List类型,但为类com.insurance.state.MyState”。只有在使用和oracle对事务进行签名时,才会发生这种情况。如果我不使用和oracle。我没有得到这个错误。我在corda 4.3中得到了类似的错误。我尝试使用oracle为我的cordapp过滤事务,效果很好。但是如果我在与oracle签署tx后使用send或sendAndReceive。我要。。。。序列化失败direction=“Deserialize”,type=“java.util.List”,msg=“Descripted type with descriptor net.corda:1f2tmsdgsu106jed1w0vJw==应为接口java.util.List类型,但为类com.insurance.state.MyState”。只有在使用和oracle对事务进行签名时,才会发生这种情况。如果我不使用和oracle。我没有得到这个错误。