rest - 带有 webclient bodyToMono 的 Spring webflux UnsupportedMediaTypeException 不支持内容类型 'application/json'

标签 rest spring-webflux

我有一个带有 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/

相关文章:

java - 如何防止嵌入式netty服务器从spring-boot-starter-webflux启动?

reactive-programming - 谁在响应式 Web 应用程序中调用 Flux 或 Mono 订阅

c# - RestSharp如何处理同一查询的不同JSON响应格式

api - 如何访问 feedly API

spring-webflux - 使用 Reactor 和 Caffeine 缓存无法正常工作

Spring Cloud Function-适合REST API吗?如何访问 GET 路径参数?

java - 将 Microsoft Translator 与 Java/Jersey/REST 一起使用

php - Laravel:使用资源 Controller 更新表的单个字段

PHP 基于 $interval 循环 X 次,但是如何处理剩余值?

java - react 性 : Caching service response for few hours