gpt4 book ai didi

spring-boot - 使用 SpringDoc webflux 支持时无法显示 Swagger/OpenApi 文档

转载 作者:行者123 更新时间:2023-12-05 09:08:26 30 4
gpt4 key购买 nike

我有一个小型 Spring Boot 微服务,它使用 webflux 将其端点公开为响应式(Reactive)。

当我从 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,除了 Autowiring 的服务类之外,我在 Controller 中没有任何“花哨”的东西,端点只是用 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-starter-web 和 spring-boot-starter-webflux。

您只需要从依赖项中删除 spring-boot-starter-web 即可。

关于spring-boot - 使用 SpringDoc webflux 支持时无法显示 Swagger/OpenApi 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63490234/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com