java.lang.IllegalArgumentException:视图分辨率不支持多值反应类型:reactor.core.publisher.Flux<MyPojo>



关于Java+SpringBoot Webflux的小问题。

我有一个小处理程序返回一个Flux<MyPojo>

如果我构建这样的控制器(请注意@RestController(:

@RestController
public class MyController {
@PostMapping(path = "/getFluxMyPojo", produces = MediaType.APPLICATION_JSON_VALUE)
public Flux<MyPojo> getFluxMyPojo() {
return myPojoService.thisWillGetFluxMyPojo();
}
}

事情进展顺利,非常愉快,我确实有变化。

当我将@RestController更改为@Controller时,我很难理解的是:

@Controller
public class MyController {
@PostMapping(path = "/getFluxMyPojo", produces = MediaType.APPLICATION_JSON_VALUE)
public Flux<MyPojo> getFluxMyPojo() {
return myPojoService.thisWillGetFluxMyPojo();
}
}

然后,我总是得到这个例外。

java.lang.IllegalArgumentException: Multi-value reactive types not supported in view resolution: reactor.core.publisher.Flux<MyPojo>
at org.springframework.web.reactive.result.view.ViewResolutionResultHandler.handleResult(ViewResolutionResultHandler.java:181) ~[spring-webflux-5.3.15.jar:5.3.15]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 

这只是一个供其他web服务使用的web服务,没有视图或任何内容。我可以问一下是什么问题吗?为什么我会得到这个例外?

谢谢

根据Boris所述,如果没有@RestController,则需要@ResponseBody注释来告诉不需要Spring视图解析。

相关内容

最新更新