У меня есть немного кода, написанного с использованием сопрограмм kotlin
suspend fun getData(request: Request): Response {
return try {
webClient.post()
.uri(path)
.body(BodyInserters.fromObject(request))
.retrieve()
.awaitExchange()
.awaitBody<Response>()
} catch (e: Exception) {
logger.error("failed", e)
throw Exception("failed", e)
}
}
Я называю этот бит кода как
val response = withContext(Dispatchers.IO) {
client.getData(request)
}
В моих журналах я вижу, что это исключение происходит время от времени довремя kotlinx.coroutines.JobCancellationException: Job was cancelled
но это не позволяет мне найти то, что на самом деле пошло не так. Я предполагаю, что одна из приостановившихся функций расширения (awaitExchange или awaitBody) не выполнена, но я не уверен в этом.