[英]HttpMediaTypeNotAcceptableException: Could not find acceptable representation
[英]Spring Webflux - HttpMediaTypeNotAcceptableException: Could not find acceptable representation
你能告訴我為什么我收到錯誤已解決[org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]
。 這是一個簡單的彈簧 webflux 控制器。
@RestController
public class TestContoller {
@GetMapping("/Test")
public Mono<ServerResponse> handleRequest2() {
return
Mono.just("Hello")
.flatMap(s -> ServerResponse.ok()
.contentType(MediaType.TEXT_PLAIN)
.bodyValue(s))
.onErrorResume(e -> Mono.just("Hello, Stranger")
.flatMap(s -> ServerResponse.ok()
.contentType(MediaType.TEXT_PLAIN)
.bodyValue(s)));
}
}
從這個鏈接中得到了一個線索。 需要使用功能端點而不是 @GetMapping 來使 ServerRerequest 和 ServerResponse 對象正常工作。
示例路由器配置
@Configuration
public class RouterConfig {
private KeyConversionHandler handler;
public RouterConfig(KeyConversionHandler handler) {
this.handler = handler;
}
@Bean
public RouterFunction<ServerResponse> routerFunctions() {
return RouterFunctions.route().GET("/productGroup/{displayId}", handler::getProductGroupId).build();
}
}
示例處理程序配置:
@Service
public class KeyConversionHandler {
private KeyConversionService keyConversionService;
public KeyConversionHandler(KeyConversionService keyConversionService) {
this.keyConversionService = keyConversionService;
}
public Mono<ServerResponse> getProductGroupId(ServerRequest request){
String displayId = request.pathVariable("displayId");
String token= request.headers().firstHeader(X_SAP_CRM_TOKEN);
return keyConversionService.getProductGroupId(displayId,token)
.flatMap(s-> ServerResponse.ok().bodyValue(s))
.onErrorResume(e -> ServerResponse.status(500).bodyValue(e.getLocalizedMessage()))
.log();
}
}
Regrads,阿比納什
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.