RestClientException无法提取响应:没有为响应类型找到合适的HttpMessageConverter

时间:2017-09-10 20:09:42

标签: java json jackson lombok

我关注PoJo:

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class KostenpflichtigeBuchung {
    private String buchungZahlungsId;

    private String warenkorbId;

    private String pseudocardpan;

    private Zahlungsmittel zahlungsmittel;

    private String landKreditkartenInhaber;

    private String nameKreditkartenInhaber;

    private String touchpointId;

    private String vertriebspartnerId;

    private Kundendaten kundendaten;

    private Fulfillmentart fulfillmentart;

    private final List<Reisender> reisenderList = new ArrayList<>();

    @JsonIgnore
    private Map<String, Object> payload;

    @JsonAnyGetter
    public Map<String, Object> getPayload() {
        return payload;
    }

    @JsonAnySetter
    public void setPayload(String name, Object value) {

        if (payload == null) {
            payload = new HashMap<>();
        }
        payload.put(name, value);
    }
}

当我对它执行黄瓜测试时,我得到以下例外:

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class de.db.vendo.bue.buchung.model.KostenpflichtigeBuchung] and content type [application/json;charset=utf-8]

    at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:109)
    at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:917)
    at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:901)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:655)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:531)

我有一些其他测试和其他具有相同注释的POJO,它们没有任何问题。我真的不知道出了什么问题。

感谢任何建议!

1 个答案:

答案 0 :(得分:0)

很可能在 lombok 构造函数注释和相关生成的构造函数之间发生问题,通常当我遇到此错误时,我只将响应类还原为@NoArgConstructor,然后重试。

如果您确实需要所有这些构造函数和构建器,请尝试手动编码并与@JsonCreator一起使用,如此thread中的describe。