corda - Corda 服务未在本地运行
问题描述
我已经创建了一个 CustomvaultQuery.Service 类,用于从数据库中获取详细信息以在流程中使用它,但在日志中它显示 IllegalArgument 因为在 Corda 中找不到 CustomvaultQuery$Service 作为@CordaService
解决方案
请查看以下有关 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。吨
推荐阅读
- java - Processbuilder 执行带有争论的 jar 文件
- flutter - Flutter从字符串变量中设置颜色
- python-3.x - 最大回文积 - 缺乏普遍性
- python - 无法删除“?” 特点
- vue.js - 更改徽标的字体类型
- java - 使用 Java 的 Web 服务
- java - Java 11 HttpClient - HttpClients 与并发 HttpRequests 的最佳比率是多少
- certificate - Azure DevOps:构建工件下载错误“错误:在 getBuildApi,所以重试 => 重试挂起:4”
- c# - 无法在 C# 中为每个循环使用字符串
- java - Apache Camel sftp 延迟查询参数似乎不起作用