2つのサービスのリソースを作成しようとしています。application/x-www-form-urlencodedとstring payloadで1、json bodyで他のアプリケーション/ json形式です。ByteArrayOutputStreamをKotlinの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: Can not construct instance of java.util.LinkedHashMap: no String-argument constructor/factory method to deserialize from String value ('{ "name" :"test"}')"
感謝を、Yoel
詳細な回答と役立つ情報をありがとう! – Joel