私はこれに対して私の頭を今や叩いていますが、まだ喜びはありません。私は春の初心者ですし、本当に助けてもらえます。Spring MVC:START_ARRAYトークンのインスタンスを逆シリアル化できません。
DBテーブルからコードのリストを返すためにSpringブートを使用しようとしています。私は、ブラウザでURLから私のRESTコントローラ...
例URLを呼び出すとき:はlocalhost:8081 /シス/ UTL/lookupchoice/OS/
それはこの返します
[
{"lookupId":10,"choiceGroup":"O.s","choiceCode":null,"displayLabel":"Pending","hidden":false,"displayOrder":1},
{"lookupId":11,"choiceGroup":"O.s","choiceCode":null,"displayLabel":"Active","hidden":false,"displayOrder":2},
{"lookupId":12,"choiceGroup":"O.s","choiceCode":null,"displayLabel":"Archived","hidden":false,"displayOrder":3},
{"lookupId":13,"choiceGroup":"O.s","choiceCode":null,"displayLabel":"Placeholder","hidden":false,"displayOrder":4}
]
しかし、これをクライアントコントローラから実行しようとすると、エラーメッセージが表示されます。呼び出しは次のようになります。
//
//Compiles but does not work
LookupChoice lookupChoice = restTemplate.getForObject(REST_URI+"/utl/lookupchoice/O.s/",
LookupChoice.class);
エラー:ネストされた例外はcom.fasterxml.jackson.databind.JsonMappingExceptionです:
トークンSTART_ARRAYのうち、com.MyPakage.repository.LookupChoiceのインスタンスをデシリアライズすることはできません誤差を仮定すると、配列ではなく、単一のオブジェクトで返されるために発生し、私はこれにコードを変更:
//
//Does not compile
Iterable<LookupChoice> lookupChoice = restTemplate.getForObject(REST_URI+"/utl/lookupchoice/U.r/",
Iterable<LookupChoice.class>);
しかし、今GE Intellijのエラーです。 反復処理可能 < LookupChoice.class>のparamのために、「式はを期待」ことを示しています、と私はこれを乗り越えることができません。
は、あなたの時間と支援のためにご返信用 エド
感謝、ありがとうございました。私はこれを選択し、それはすべて今働くようです。ご協力いただきありがとうございます!
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Object[]> responseEntity;
Object[] lookupChoice;
responseEntity = restTemplate.getForEntity(REST_SERVICE_URI+"/utl/lookupchoice/O.s/" , Object[].class);
lookupChoice = responseEntity.getBody();
model.addAttribute("Status", lookupChoice);
上記については、これをよりエレガントにする、および/またはパフォーマンスを改善するような調整がありますか? – eLowe