[英]Spring Rest Template + MapStruct 400 BAD_REQUEST error
具有以下實現:
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("key", "72hdjas721398721");
Application application = appRepository.findById(customerId)
.get();
BasicRequestMapper mapper = Mappers.getMapper(BasicRequestMapper.class);
BasicRequest basicRequest = mapper.customerToBasicRequest(application);
HttpEntity<BasicRequest> entity = new HttpEntity<>(basicRequest, headers);
try {
ResponseEntity<Response> response = restTemplate.exchange(url, HttpMethod.POST, entity,
Response.class);
return response;
} catch (HttpClientErrorException e) {
System.out.println(e.getResponseBodyAsString());
}
實現的簡短摘要:我正在使用Springs RestTemplate來執行POST請求,在其上發送POJO。
執行交換時,出現以下錯誤:
2019-03-14 11:19:51.300 DEBUG 7448 --- [ main] o.s.web.client.RestTemplate : Response 400 BAD_REQUEST
{"key":"unknown.error.found","message":"Unexpected end-of-input in field name\n at [Source: java.io.PushbackInputStream@42450be5; line: 1, column: 1523]"}
此消息已由服務器端處理,因此我在錯誤消息中得到“”密鑰“:”unknown.error.found“,”message“。但第二部分似乎是傑克遜的錯誤拋出,而de-序列化消息。
我發送的對象是一個簡單的POJO,具有很少的getter和setter屬性。 我使用mapstruct以便僅將我想要的屬性從實體映射到此pojo。
示例: 2019-03-14 11:19:50.763 DEBUG 7448 --- [ main] osweb.client.RestTemplate : Writing [BasicRequest [bankAccount=BankAccountDto [iban=DE12500105170648489890, holder=1]] as "application/json"
你能給些建議么?
查看調試輸出
2019-03-14 11:19:50.763 DEBUG 7448 --- [ main] o.s.web.client.RestTemplate : Writing [BasicRequest [bankAccount=BankAccountDto [iban=DE12500105170648489890, holder=1]] as "application/json"
看來RestTemplate
沒有發送我們的JSON內容。 不確定您的依賴情況如何。 但是,很可能你錯過了傑克遜作為依賴。 如果添加它,它應該發送正確的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.