当我的代码如下时显示错误:

@Test
public void getTemplateByIdTest() throws Exception {
    client.get().uri("/template/getTemplate/7")
            .exchange()
            .expectStatus().isOk()
            .expectHeader().contentType(MediaType.APPLICATION_JSON_UTF8)
            .expectBody(VtTemplateVO.class)
            .returnResult();
}

当我这样更改代码时,就可以了!
@Test
public void getTemplateByIdTest() throws Exception {
    client.get().uri("/template/getTemplate/7")
            .exchange()
            .expectStatus().isOk()
            .expectHeader().contentType(MediaType.APPLICATION_JSON_UTF8)
            .expectBody(String.class)
            .returnResult();
}

为什么当我使用.expectBody(VtTemplateVO.class)时会说org.springframework.web.reactive.function.UnsupportedMediaTypeException: Content type 'application/json;charset=UTF-8' not supported
有人知道吗请帮忙,谢谢

最佳答案

我也面临着由Jackson引起的这个问题.VtTemplateVO.class需要有一个带有注释属性的默认构造函数。前任。我做了什么-

@JsonCreator
public Comment(@JsonProperty("id")String id, @JsonProperty("text")String text, @JsonProperty("createdTime") LocalDate createdTime) {
        this.id = id;
        this.text = text;
        this.createdTime = createdTime;
}

希望它也对您有用。 :)

10-07 12:10