我正在尝试调用com.luxoft.blockchainlab.corda.hyperledger.indy.flow.b2b.GetDidFlowB2B
corda上的流程。但它抛出
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 异常。有人可以帮忙吗?
重现步骤
- 复制
cordentity-cordapp-0.5.0
到 PartyA 和 PartyB cordapp 目录 - 启动 indy-pool 并为每个节点创建 indy.properties 文件
- 使用在 PartyB 上启动流程
flow start com.luxoft.blockchainlab.corda.hyperledger.indy.flow.b2b.GetDidFlowB2B$Initiator authority: "O=PartyA,L=London,C=GB"