【发布时间】:2020-12-08 21:56:41
【问题描述】:
我有一个小型 Spring Boot 微服务,它使用 webflux 将其端点公开为反应式。
当我从 IntelliJ、Gradle 或带有 SpringDoc webflux 支持的 cmd 行运行应用程序时:implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.4.4'
然后我转到 http://localhost:8080/swagger-ui.html 我收到 500 错误,日志显示:
java.lang.IllegalStateException: No primary or default constructor found for interface org.springframework.http.server.reactive.ServerHttpRequest]
以及根本原因:
java.lang.NoSuchMethodException: org.springframework.http.server.reactive.ServerHttpRequest.<init>()
如果我使用http://localhost:8080/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config
我得到的是 404 而不是 500。
但是,如果我将依赖项更改为非反应性 SpringDoc 模块:implementation 'org.springdoc:springdoc-openapi-ui:1.4.4'
文档可用,只是不显示返回架构(我猜这是意料之中的,因为响应包含在 Mono 中)。
I have looked at this question, but it didnt help
我使用的是 Spring Boot 2.3.3.RELEASE,除了自动装配的服务类之外,我在控制器中没有任何“花哨”的东西,端点只是用 GetMapping 注释并返回 Mono<T>。我已经包含了以下依赖项:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.4.4'
【问题讨论】:
标签: spring-boot swagger spring-webflux springdoc