gpt4 book ai didi

java - corda 升级后运行测试时出现错误 obj.javaClass .`package`

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:13 25 4
gpt4 key购买 nike

我刚刚从 corda 3.3 升级到 4.0,然后我所有的合约和流程测试开始失败。这些在我定义事务的那些行中失败了(添加输出和输入状态时的事务生成器对象)。

ledger(ledgerServices, l -> {
l.transaction(tx -> {
tx.input(fooContract.foo_CONTRACT_ID, fooContractState);
tx.command(Arrays.asList(node1.getPublicKey(),
node2.getPublicKey()),
new fooContract.Commands.dummyCommand());
// Correct type.
return tx.verifies();
}
}

我收到以下错误:

obj.javaClass.package must not be null

最佳答案

这是当 TransactionBuilder 试图在事务中查找 StatePointer 并且包名称为 null 时引起的问题(查找包的逻辑是错误的,因为它正在考虑并调用其起源为 null 的东西)。提醒您,StatePointer 仅在 Corda Platform Open Source 4.0 中发布。我建议您将 CorDapp 升级到 Corda 4.1 版本,因为它已于 2019 年 3 月 7 日修复,并且仅在 Corda 4.1 中发布。

您的日志应该记录如下内容:

obj.javaClass.package 不得为 null
java.lang.IllegalStateException:obj.javaClass.package 不能为 null
在 net.corda.core.internal.StatePointerSearch.handleObject(StatePointerSearch.kt:75)
在 net.corda.core.internal.StatePointerSearch.handleField(StatePointerSearch.kt:85)
在 net.corda.core.internal.StatePointerSearch.search(StatePointerSearch.kt:92)
在 net.corda.core.transactions.TransactionBuilder.resolveStatePointers(TransactionBuilder.kt:494)
在 net.corda.core.transactions.TransactionBuilder.addOutputState(TransactionBuilder.kt:568)

欲了解更多信息: https://github.com/corda/corda/commits/release/4.1/core/src/main/kotlin/net/corda/core/internal/StatePointerSearch.kt

查看 2019 年 3 月 7 日实现的提交,handleObject(obj: Any?) 方法试图获取 packageName 属性中名为“name”的属性,但“name”属性为 null。

关于java - corda 升级后运行测试时出现错误 obj.javaClass .`package`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55391832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com