首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring WebFlux Reactive和Kotlin协程启动错误

Spring WebFlux Reactive和Kotlin协程启动错误
EN

Stack Overflow用户
提问于 2020-04-05 02:17:29
回答 2查看 1.4K关注 0票数 2

无论我如何设置我的项目,我在启动时都会得到以下异常:

“检测到不支持的挂起处理程序方法”。

我正在尝试使用https://docs.spring.io/spring/docs/5.2.0.BUILD-SNAPSHOT/spring-framework-reference/languages.html#coroutines中描述的对协程的支持。

这是我的gradle设置(缩写)。我如何摆脱这个异常?

代码语言:javascript
复制
ext.kotlin_version = '1.3.70'
ext.kotlin_coroutines_core = '1.3.5'
ext.kotlin_coroutines_reactor = '1.3.5'
ext.spring_boot_version = '2.2.6.RELEASE'
ext.springfox_version='2.9.2'
ext.jackson_module_kotlin = '2.10.3'
...

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_core"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlin_coroutines_reactor"
implementation "org.springframework.boot:spring-boot-starter-webflux:$spring_boot_version"
implementation "com.fasterxml.jackson.module:jackson-module-kotlin:$jackson_module_kotlin"
implementation "net.rakugakibox.spring.boot:logback-access-spring-boot-starter:2.7.1"
implementation "net.logstash.logback:logstash-logback-encoder:5.3"
implementation "org.springframework.boot:spring-boot-starter-actuator:$spring_boot_version"
implementation "io.micrometer:micrometer-registry-statsd:1.1.4"
implementation "io.springfox:springfox-swagger2:$springfox_version"
EN

回答 2

Stack Overflow用户

发布于 2020-10-28 23:30:11

这可能是因为当类路径中同时有Spring MVC和Spring时,Spring Boot使用Spring MVC服务器,因为Spring WebFlux还包含可以与这两个服务器一起使用的WebClient

当您使用带有依赖项(这里是springfox-swagger2)的spring-boot-starter-webflux时,通常会发生这种情况,该依赖项会在类路径中传递地引入Spring MVC。

在您的application.properties (或application.yml的等价物)中设置spring.main.web-application-type=reactive将强制使用WebFlux服务器,并可能避免此问题。

请注意,Spring MVC也支持协程(使用内部MVC异步支持),从Spring Framework 5.3和Spring Boot2.4开始,所以在这些版本中,您将不会出现此错误,但您将使用Spring MVC而不是Spring WebFlux,这可能不是您想要的。因此,即使使用Spring Boot 2.4+,如果您希望使用Spring MVC并传递Spring MVC的依赖关系,也应该设置spring.main.web-application-type=reactive

票数 8
EN

Stack Overflow用户

发布于 2020-04-06 01:28:27

我在这里有几个小时都有同样的问题。

我解决这个问题的方法是不使用@RequestMapping注释。

移除该注释并将@RequestMapping值向下移动时,@GetMapping和@PostMappings等就会起作用。无论如何,这都不是一个好的解决方案,但这是我到目前为止唯一找到的一个。

这个问题似乎来自Spring MVC在挂起函数的代码中添加了一个检查,我猜这是与WebFlux共享的:https://github.com/spring-projects/spring-framework/issues/23585

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61032704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档