java.lang.IllegalArgumentException:视图解析不支持多值反应类型:reactor.core.publisher.Flux<MyPojo>
java.lang.IllegalArgumentException: Multi-value reactive types not supported in view resolution: 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:
这只是供其他网络服务使用的网络服务,没有视图或任何东西。
请问这是什么问题,为什么我会收到此异常?
谢谢
正如 Boris 提到的,如果没有 @RestController,它需要 @ResponseBody 注释来告诉 Spring 不需要视图分辨率。
关于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:
这只是供其他网络服务使用的网络服务,没有视图或任何东西。 请问这是什么问题,为什么我会收到此异常?
谢谢
正如 Boris 提到的,如果没有 @RestController,它需要 @ResponseBody 注释来告诉 Spring 不需要视图分辨率。