0

我正在尝试调用com.luxoft.blockchainlab.corda.hyperledger.indy.flow.b2b.GetDidFlowB2Bcorda上的流程。但它抛出

java.lang.NoClassDefFoundError: com/sun/jna/Callback
    at com.luxoft.blockchainlab.hyperledger.indy.helpers.WalletHelper.createNonExisting(WalletHelper.kt:38) ~[?:?]
    at com.luxoft.blockchainlab.hyperledger.indy.helpers.WalletHelper.openOrCreate(WalletHelper.kt:118) ~[?:?]
    at com.luxoft.blockchainlab.hyperledger.indy.helpers.WalletHelper.openOrCreate(WalletHelper.kt:132) ~[?:?]
    at com.luxoft.blockchainlab.corda.hyperledger.indy.service.IndyService$indyUser$2.invoke(IndyService.kt:50) ~[?:?]
    at com.luxoft.blockchainlab.corda.hyperledger.indy.service.IndyService$indyUser$2.invoke(IndyService.kt:25) ~[?:?]
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.2.71.jar:1.2.71-release-64 (1.2.71)]
    at com.luxoft.blockchainlab.corda.hyperledger.indy.service.IndyService.getIndyUser(IndyService.kt) ~[?:?]
    at com.luxoft.blockchainlab.corda.hyperledger.indy.flow.FlowExtensionsKt.indyUser(FlowExtensions.kt:24) ~[?:?]
    at com.luxoft.blockchainlab.corda.hyperledger.indy.flow.b2b.GetDidFlowB2B$Authority.call(GetDidFlowB2B.kt:48) ~[?:?]
    at com.luxoft.blockchainlab.corda.hyperledger.indy.flow.b2b.GetDidFlowB2B$Authority.call(GetDidFlowB2B.kt:43) ~[?:?]
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:349) ~[corda-node-4.8.jar:?]
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:71) ~[corda-node-4.8.jar:?]
    at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1105) ~[quasar-core-0.7.13_r3.jar:0.7.13_r3]
    at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:801) ~[quasar-core-0.7.13_r3.jar:0.7.13_r3]
    at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:102) ~[quasar-core-0.7.13_r3.jar:0.7.13_r3]
    at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:93) ~[quasar-core-0.7.13_r3.jar:0.7.13_r3]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_171]
    at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_171]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source) ~[?:1.8.0_171]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:1.8.0_171]
    at net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:63) ~[corda-node-4.8.jar:?]
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Callback
    at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_171]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_171]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_171]
    ... 23 more

在我尝试获取 DID 的另一个节点上。我已经把jna-4.5.1.jar文件jre/lib和每个节点的djvm文件夹。但我仍然收到 CNF 异常。有人可以帮忙吗?

重现步骤

  1. 复制cordentity-cordapp-0.5.0到 PartyA 和 PartyB cordapp 目录
  2. 启动 indy-pool 并为每个节点创建 indy.properties 文件
  3. 使用在 PartyB 上启动流程flow start com.luxoft.blockchainlab.corda.hyperledger.indy.flow.b2b.GetDidFlowB2B$Initiator authority: "O=PartyA,L=London,C=GB"
4

1 回答 1

0

exclude group: 'net.java.dev.jna', module: 'jna'能够通过评论indy-utils来解决问题

于 2021-12-20T12:04:36.373 回答