java - 在 RestController 方法中获取 ServerWebExchange

标签 java spring spring-boot spring-webflux

我怎样才能得到ServerWebExchange或响应式(Reactive) ServerHttpResponse在 Controller 方法中?

我不断收到 NestedServletException在尝试调用接受 ServerWebExchange 的其余 Controller 方法时.

我的 Controller 看起来像这样:

@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);
    }
}

异常(exception):

io.undertow.request : UT005023: Exception handling request to /path/value/path/path

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: No primary or default constructor found for interface org.springframework.web.server.ServerWebExchange

最佳答案

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

我正在迁移到 spring-webflux ,但得到了 spring-webmvc作为传递依赖。 webfluxwebmvc不兼容 - 只有一个会处理请求。

关于java - 在 RestController 方法中获取 ServerWebExchange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51349431/

相关文章:

java - 我想使用java将带有特殊字符的字符串发送到mysql

java - 在 Spring Boot 中通过 POST 创建对实体创建的父引用

java - 尝试重现 spring security OAuth2Login 示例时不断收到错误

java - Spring Boot 与 SessionScope 的问题

java - Spring Boot 应用程序不会为 JPA @Table 注释创建模式

Java Swing JButton 未显示在 JPanel 上

java - 用纯Java学习JavaCV

java - Android 中文件/数据库的 SkyDrive/Dropbox 同步

spring - Eureka 和 Jersey 2.x

java - 从 Spring MVC 中的自定义 Controller 访问服务层