我正在将当前的 Swagger 配置从 spring Fox (Swagger2) 转换为 OpenAPI 3.0 (Swagger3),但是当我在本地运行 SpringBoot 项目并尝试点击
localhost:8080/v3/api-docs
时,我遇到了转换异常:
{"errors":[{""errorCode":"INTERNAL_SERVER_ERROR", "errorDescription":"Internal server error. Unable to process your request", "stackTrace": "java.lang.ClassCastException: java.lang.String cannot be cast to com.package.ObjectInQuestion}]}
Swagger2 曾经工作得很好,但一旦我引入了下面的 OpenAPI 依赖项,并取出所有 Swagger2 引用,它就崩溃了。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-open-ui</artifactId>
<version>1.5.5</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-open-webmvc-core</artifactId>
<version>1.5.5</version>
</dependency>
我什至添加了 webmvc-core 来看看是否解决了问题,但没有成功。将所有标签更新为适合我们 API 的 OpenAPI 标签。尝试使用 Docket(Swagger2) 和 OpenAPI(Swagger3) @Beans。
ObjectInQuestion 甚至没有在项目中使用,它作为类模型包含在我们常见的 jar 中,所以我怀疑问题出在 Swagger3 配置上。
我使用以下链接来配置 OpenAPI,springdoc.org/#migration-from-springfox
我遇到了类似的问题,升级到较新版本的 springdoc 解决了该问题。