代码之家  ›  专栏  ›  技术社区  ›  senia

在RestController方法中获取ServerWebExchange

  •  3
  • senia  · 技术社区  · 8 年前

    我怎么能得到 ServerWebExchange 或反应性 ServerHttpResponse 在控制器方法中?

    我不断地 NestedServletException 尝试调用接受 服务器WebExchange .

    我的控制器如下:

    @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的主或默认构造函数

    1 回复  |  直到 8 年前
        1
  •  3
  •   senia    8 年前

    解决方案 :确保没有 spring-webmvc 在类路径上。

    我正迁移到 spring-webflux ,但得到 春季WebMVC 作为可传递的依赖项。 webflux webmvc 不兼容-只有一个可以处理请求。