$$ Error:对方未在意外的时间发送会话拒绝消息,消息类流未注册

时间:2018-09-06 13:09:35

标签: corda

我想使用oraclizer进行外部服务呼叫。所以我试图运行下面给出的示例文件:

Example Oraclize

运行后,出现错误-

  

对方在意外的时间发送了会话类别为it.oraclize.cordapi.flows.OraclizeQueryFlow的会话拒绝消息

在流中,调用OraclizeQueryAwaitFlow流,该流又调用OraclizeQueryFlow。在此流中,有一个sendAndReceive调用,发生如下:

@InitiatingFlow
@StartableByRPC

class OraclizeQueryFlow (val datasource: String, val query: Any, val proofType: Int = 0, val delay: Int = 0) : FlowLogic<String>() {

companion object {

    object PROCESSING : ProgressTracker.Step("Submitting the query.")

    @JvmStatic
    fun tracker() = ProgressTracker(PROCESSING)

    @JvmStatic
    val console = loggerFor<OraclizeQueryFlow>()
}

override val progressTracker = tracker()

fun console(a: Any) = loggerFor<OraclizeQueryFlow>().info(a.toString())
// start OraclizeQueryFlow datasource: "URL", query: "json(https://min-api.cryptocompare.com/data/price?fsym=USD&tsyms=GBP).GBP", proofType: 16, delay: 0
// start OraclizeQueryFlow datasource: identity, query: hello, proofType: 0, delay: 0
@Suspendable
override fun call(): String {

    val oraclize = serviceHub.identityService
            .wellKnownPartyFromX500Name(OraclizeUtils.getNodeName()) as Party

    progressTracker.currentStep = PROCESSING
    val session = initiateFlow(oraclize)

    val query = Query(datasource, query, delay, proofType)
    val queryId = session.sendAndReceive<String>(query).unwrap { it }

    console("Query id: $queryId")

    return queryId
}
}

在检查日志时,我偶然发现sendAndReceive调用引发了此错误。

1 个答案:

答案 0 :(得分:1)

这是Oraclize的Mauro,您使用的是Corda的公共测试网吗?如果没有,您应该遵循此guide才能使用我们的服务。如果您正在使用它,则应等待几个工作日,因为我们仍在新的测试网上测试该服务。