【发布时间】:2019-03-11 17:37:40
【问题描述】:
我在 Kotlin 中有完美运行的 Corda 应用程序 - 从 IDE 启动时它会启动并正常运行
但是当我尝试将其构建为 jar 文件时,它会因以下错误而崩溃
信息:启动 SSHD 信息 2019 年 11 月 8:28:27 PM org.crsh.ssh.SSHPlugin init 信息:启动 SSHD 信息 2019 年 11 月 8:28:28 PM org.crsh.ssh.term.SSHLifeCycle 初始化 信息:即将启动 CRaSSHD 信息 2019 年 11 月 8:28:28 PM org.crsh.ssh.term.SSHLifeCycle 初始化 信息:即将启动 CRaSSHD 信息 2019 年 11 月 8:28:28 PM org.crsh.ssh.term.SSHLifeCycle 初始化 严重:无法启动 CRaSSHD java.net.BindException:地址已在使用:绑定 在 sun.nio.ch.Net.bind0(本机方法) 在 sun.nio.ch.Net.bind(未知来源) 在 sun.nio.ch.Net.bind(未知来源) 在 sun.nio.ch.AsynchronousServerSocketChannelImpl.bind(未知来源) 在 org.apache.sshd.common.io.nio2.Nio2Acceptor.bind(Nio2Acceptor.java:63) 在 org.apache.sshd.common.io.nio2.Nio2Acceptor.bind(Nio2Acceptor.java:87) 在 org.apache.sshd.server.SshServer.start(SshServer.java:325) 在 org.crsh.ssh.term.SSHLifeCycle.init(SSHLifeCycle.java:182) 在 org.crsh.ssh.SSHPlugin.init(SSHPlugin.java:192) 在 org.crsh.plugin.PluginManager.getPlugins(PluginManager.java:83) 在 org.crsh.plugin.PluginContext.start(PluginContext.java:327) 在 org.crsh.plugin.PluginLifeCycle.start(PluginLifeCycle.java:104) 在 net.corda.node.shell.InteractiveShell$ShellLifecycle.start(InteractiveShell.kt:181) 在 net.corda.node.shell.InteractiveShell.startShell(InteractiveShell.kt:118) 在 net.corda.node.internal.AbstractNode.startShell(AbstractNode.kt:297) 在 net.corda.node.internal.AbstractNode$start$4.invoke(AbstractNode.kt:262) 在 net.corda.node.internal.AbstractNode$start$4.invoke(AbstractNode.kt:105) 在 net.corda.node.internal.AbstractNode$initialiseDatabasePersistence$2.invoke(AbstractNode.kt:700) 在 net.corda.node.internal.AbstractNode$initialiseDatabasePersistence$2.invoke(AbstractNode.kt:105) 在 net.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:152) 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:138) 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:124) 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:131) 在 net.corda.node.internal.AbstractNode.initialiseDatabasePersistence (AbstractNode.kt:699) 在 net.corda.node.internal.Node.initialiseDatabasePersistence(Node.kt:347) 在 net.corda.node.internal.AbstractNode.start(AbstractNode.kt:207) 在 net.corda.node.internal.Node.start(Node.kt:361) 在 net.corda.testing.node.internal.DriverDSLImpl$Companion$startInProcessNode$1.invoke(DriverDSLImpl.kt:805) 在 net.corda.testing.node.internal.DriverDSLImpl$Companion$startInProcessNode$1.invoke(DriverDSLImpl.kt:767) 在 net.corda.core.internal.concurrent.ValueOrException$DefaultImpls.capture(CordaFutureImpl.kt:107) 在 net.corda.core.internal.concurrent.OpenFuture$DefaultImpls.capture(CordaFutureImpl.kt) 在 net.corda.core.internal.concurrent.CordaFutureImpl.capture(CordaFutureImpl.kt:119) 在 net.corda.core.internal.concurrent.CordaFutureImplKt$fork$$inlined$also$lambda$1.run(CordaFutureImpl.kt:22) 在 java.util.concurrent.Executors$RunnableAdapter.call(未知来源) 在 java.util.concurrent.FutureTask.run(未知来源) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(未知来源) 在 java.util.concurrent.ScheduledThreadPoolExecutor$Sche..(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(未知来源)我只启动了一个节点,似乎没有进程可以干扰程序的执行(同样,从 IDE 启动时它工作正常)
【问题讨论】:
-
如果您提供导致错误的代码而不是异常回溯,将会很有帮助。您使用的操作系统也可能很重要。
-
val rpcUsers = listOf(User("user1", "test", permissions = setOf("ALL"))) driver(DriverParameters(startNodesInProcess = true, waitForAllNodesToFinish = true)) { startNode(providedName = CordaX500Name("PartyG", "New York", "US"), rpcUsers = rpcUsers).getOrThrow() }有问题的代码。我想它应该启动一个节点,但在内部某处失败。操作系统是 Windows 10 -
您是否意识到您可以编辑问题?问题(和答案)中的代码格式比 cmets 中的要好得多。并且:如果它是问题的一部分,请将其添加到问题中!