【问题标题】:Corda Service not running locallyCorda 服务未在本地运行
【发布时间】:2020-05-28 04:51:57
【问题描述】:

我创建了一个 CustomvaultQuery.Service 类,用于从数据库中获取详细信息以在流程中使用它,但在日志中它显示 IllegalArgument,因为在 Corda 中找不到 CustomvaultQuery$Service 作为 @CordaService

【问题讨论】:

  • 请附上错误日志,以便我们为您提供帮助。
  • 请同时粘贴CustomvaultQuery$Service的定义。
  • 如果没有错误日志,我无法确定,但有时会在创建新类而不重新部署节点时发生问题(这意味着节点仍然使用过时的 CorDapp)。重新部署将分发带有新类的新 CorDapp。

标签: corda


【解决方案1】:

请查看以下有关 Corda 服务代码的示例:

private fun directPayment() {
    val ourIdentity = ourIdentity()
    serviceHub.vaultService.trackBy<PaymentRequestState>().updates.subscribe {
        update: Vault.Update<PaymentRequestState> -> update.produced.forEach{
        message: StateAndRef<PaymentRequestState> ->
            val state = message.state
            if (ourIdentity == serviceHub.networkMapCache.getPeerByLegalName(CordaX500Name("BankOperator", "Toronto", "CA"))!!) {
                executor.execute {
                    log.info("Directing to message $state")
                    serviceHub.startFlow(PaymentFlowInitiator())
                }
            }
        }
    }
}

这正是您正在寻找的数据库查询服务。 完整代码在:https://github.com/corda/samples-kotlin/blob/master/Features/cordaService-autopayroll/workflows-kotlin/src/main/kotlin/net/corda/examples/autopayroll/flows/AutoPaymentService.kt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2021-08-25
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多