我想使用oraclizer进行外部服务呼叫。所以我试图运行下面给出的示例文件:
运行后,出现错误-
对方在意外的时间发送了会话类别为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调用引发了此错误。
答案 0 :(得分:1)
这是Oraclize的Mauro,您使用的是Corda的公共测试网吗?如果没有,您应该遵循此guide才能使用我们的服务。如果您正在使用它,则应等待几个工作日,因为我们仍在新的测试网上测试该服务。