【发布时间】:2019-04-30 23:12:19
【问题描述】:
当我使用JacksonSerializer() 功能创建客户端并进行一些 API 调用,然后在我的本地计算机上运行该脚本时,我没有收到任何错误并且脚本运行成功。但是,当我将此脚本作为 AWS Lambda 上传时,我收到以下错误:
com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of kotlin.coroutines.Continuation, problem: abstract types either need to be mapped to concrete types, have custom deserializer, or be instantiated with additional type information
起初,我以为错误源于我在 Handler 类之外构建客户端,但是当我在 Handler 类中将客户端设置为私有值时,我仍然得到错误。我在我的函数中包含了println() 语句,但它们甚至没有运行。这告诉我我的handleRequest() 功能没有运行。是否有一些 AWS/Lambda'ism 阻止我使用 JacksonSerializer() 功能?如果是这样,是否有其他方法可以使用 Ktor 客户端解析 JSON 响应?
我的客户端构造:
private val client = HttpClient(Apache) {
install(JsonFeature) {
serializer = JacksonSerializer()
}
}
使用客户端的示例调用:
val response = client.post<JsonNode> {
url(URL(GITHUB_GRAPHQL_ENDPOINT))
body = reqBody
headers {
append("Authorization", "bearer $token")
}
}
【问题讨论】:
标签: kotlin jackson aws-lambda