如何通过控制器方法获得ServerWebExchange
或反应性ServerHttpResponse
?
在尝试调用接受NestedServletException
的rest控制器方法时,我不断得到ServerWebExchange
。
我的控制器如下:
@RestController
@RequestMapping(path = "/path/{param1}/path", produces = MediaType.APPLICATION_JSON_VALUE)
public class MyController {
@GetMapping("/path")
public Mono<Void> method(ServerWebExchange exchange) {
...
}
}
主要方法:
@SpringBootApplication
@ComponentScan(basePackages = {"my.package1", "my.package2"})
@EnableWebFlux
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
例外:
io.undertow.request:UT005023:对/ path / value / path / path的异常处理请求
org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为java.lang.IllegalStateException:找不到接口org.springframework.web.server.ServerWebExchange
的主要或默认构造函数
答案 0 :(得分:3)
解决方案:确保类路径上没有spring-webmvc
。
我正在迁移到spring-webflux
,但得到spring-webmvc
作为传递依赖。 webflux
和webmvc
不兼容-只有一个可以处理请求。