我有一个带有 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();
}
非常感谢任何帮助。我已经被困在这里一段时间了。
最佳答案
终于通过设置属性解决了问题
@Value.Style(jdkOnly = true)
关于rest - 带有 webclient bodyToMono 的 Spring webflux UnsupportedMediaTypeException 不支持内容类型 'application/json',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61310089/