Springブートを使用して、小さく簡単なRESTサービスを作成したいと考えました。ここ は、RESTサービスのコードは次のとおりです。JsonMappingException:java.lang.IntegerのインスタンスをSTART_OBJECTトークンからデシリアライズできません
@Async
@RequestMapping(value = "/getuser", method = POST, consumes = "application/json", produces = "application/json")
public @ResponseBody Record getRecord(@RequestBody Integer userId) {
Record result = null;
// Omitted logic
return result;
}
私が送信されたJSONオブジェクトは以下の通りです:
{
"userId": 3
}
そして、ここでは、私が得た例外です:
は--- 964 WARN [XNIO-2タスク-7] .wsmsDefaultHandlerExceptionResolver:HTTP を読み取れませんでしたメッセージ: org.springframework.http.converter.HttpMessageNotReadableExc例: ドキュメントを読み取れませんでした: のインスタンスを逆シリアル化できません。java.lang.Integerが[ソース: のSTART_OBJECTトークンから抜けています。java.io.PushbackInputStream @ 12e7333c;行:1、列:1]; 例外はcom.fasterxml.jackson.databind.JsonMappingExceptionです。 は、[ソース:[email protected];のSTART_OBJECT トークンからjava.lang.Integerのインスタンスを非直列化できません。行:1、 コラム:1]
私は問題がJackson Object Mapperであることを知っていますが、HTTP経由で送信するJSONオブジェクトは実際にはわかりません。私の元々の話は、私のJSONオブジェクトに問題があるということでした。 お返事ありがとうございましたAli Dehghani! – user2581426
PathVariableアノテーションを使用せずに単純なIntegerをPOSTメソッドで送信する他の方法はありませんか? 要求本体に単純な整数を逆シリアル化できる他のデシリアライズ・テクニックはありますか? – user2581426
'application/json'ではなく、キーと値のペアを送ることができます。 'application/x-www-form-urlencoded'を使用してリクエスト本体の' userId = 15' –