【发布时间】:2016-09-14 15:41:44
【问题描述】:
我正在尝试为 2 个服务创建一个资源,其中 1 个是 application/x-www-form-urlencoded 和字符串有效负载,另一个是带有 json body 的 application/json 格式。
我有这个代码:
@POST @Path("/test")
fun test(@Context request: ContainerRequest): Response {
val baos = ByteArrayOutputStream()
request.entityStream.use { it.copyTo(baos) }
val ipnRawData = baos.toString()
var map : Map<String,Any>
map = when (request.headers.getFirst("Content-Type")) {
"application/json" -> objectMapper.convertValue(ipnRawData,Map::class.java) as Map<String,Any>
"application/x-www-form-urlencoded" -> LinkedHashMap()
else -> throw UnsupportedOperationException()
}
//....handle the map
return Response.status(200).build()
}
但是当我尝试使用 json 选项和正文:{"name" :"test"}) 运行它时,我得到一个错误:
"java.lang.IllegalArgumentException:无法构造 java.util.LinkedHashMap 的实例:没有字符串参数构造函数/工厂方法可以从字符串值反序列化('{ "name" :"test"}')"
感谢您的帮助,Yoel
【问题讨论】: