【问题标题】:Spring webflux with webclient bodyToMono UnsupportedMediaTypeException Content type 'application/json' not supportedSpring webflux with webclient bodyToMono UnsupportedMediaTypeException 不支持内容类型'application/json'
【发布时间】:2020-08-02 05:24:22
【问题描述】:

我有带有 web 客户端的 spring 应用程序调用其他 REST 端点。下面是客户端 -

@Override
public Mono<SearchPrincipalsByResourceResponse> searchPrincipalsByResource(SearchPrincipalsByResourceRequest searchPrincipalsByResourceRequest) {
    return webClient
            .post()
            .uri(uriBuilder -> uriBuilder.path(BASE_PATH + SEARCH_PRINCIPALS_BY_RESOURCE_PATH).build())
            .accept(APPLICATION_JSON)
            .body(Mono.just(searchPrincipalsByResourceRequest), SearchPrincipalsByResourceRequest.class)
            .retrieve()
            .bodyToMono(SearchPrincipalsByResourceResponse.class);
}

在测试过程中,我在 bodyToMono 得到了这个错误

Suppressed: org.springframework.web.reactive.function.UnsupportedMediaTypeException: Content type 'application/json' not supported for bodyType=io.atlassian.identity.directorymerge.perms.model.SearchPrincipalsByResourceResponse

我使用的是不可变的,下面是 SearchPrincipalsByResourceResponse 类

@Value.Immutable
@JsonAutoDetect
@JsonSerialize(as = ImmutableSearchPrincipalsByResourceResponse.class)
@JsonDeserialize(as = ImmutableSearchPrincipalsByResourceResponse.class)
public abstract class SearchPrincipalsByResourceResponse {
    public abstract List<SearchResult> getResults();
}

非常感谢任何帮助。我已经卡在这里一段时间了。

【问题讨论】:

    标签: rest spring-webflux


    【解决方案1】:

    终于可以通过设置属性来解决问题了

    @Value.Style(jdkOnly = true) 
    

    【讨论】:

      猜你喜欢
      • 2019-02-20
      • 2019-09-02
      • 2017-10-21
      • 2016-11-17
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 2018-08-06
      相关资源
      最近更新 更多