首页 > 解决方案 > Corda 服务未在本地运行

问题描述

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

标签: corda

解决方案


请查看以下有关 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。吨


推荐阅读