Spring webflux с webclient bodyToMono UnsupportedMediaTypeException Тип содержимого «application / json» не поддерживается - PullRequest
0 голосов
/ 19 апреля 2020

У меня весеннее приложение с веб-клиентом, которое звонит другим конечным точкам 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();
}

Любая помощь очень ценится. Я застрял здесь на некоторое время.

1 Ответ

0 голосов
/ 20 апреля 2020

Наконец-то я смог решить проблему, установив атрибут

@Value.Style(jdkOnly = true) 
...