簡體   English   中英

Spring Rest Template + MapStruct 400 BAD_REQUEST錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM