当我将其作为 springboot 应用程序运行时,带有 swagger 的 springboot 应用程序运行良好。
还有另一种方式来运行我的 Spring Boot 应用程序,即通过 springboot JarLauncher 类。我将 springboot jar 从 3.1.x 升级到 3.3.x,这个 jarlauncher 被移动到另一个包,但 spring 的好人仍然带回了原始包(在更高版本中)。所以升级版本后,我的springboot应用程序没有运行,原来是JarLauncher类。
所以我们可以通过maven设置切换到经典的JarLauncher类。
应用程序现已运行,但 Swagger Ui 页面未列出任何操作。它只是说规范中没有定义操作!有很多线程都有相同的错误消息,但我几乎尝试了所有线程。
我的休息控制器上的注释是@RestController而不是@Controller。
我尝试将@GetMapping更改为@RequestMapping(method=RequestMethod.GET)
我尝试删除 springdoc.packageToScan 属性,将其更改为 com.my.project.v1 或 com.my.project.v1.* 作为 我的其余端点位于 com.my.project.v1.endpoints.rest 包中,
在 v1 文件夹或端点文件夹中添加了其余端点。
我使用了 application.yaml 甚至 application.properties (以防万一 yaml 由于某种原因成为问题)。
当我转到 localhost:8080/v3/api-docs 时,我的路径和组件是空的 {}。
升级之前,它运行良好。升级后,我只是强制系统使用经典的 JarLauncher 类。升级后,如果我将其作为 springboot 应用程序和/或在 Docker 上运行,它可以正常工作。
我的控制器有三个注释:
@RestController
@validated
@RequestMapping("/api/v1")
public class MyController{
@GetMapping(value="/my-endpoint")
public Object getEndpoint(){
}
}
我会缺少什么?
我的库 org.springdoc 2.6.0 io.swagger.core.v3 2.29 Springboot 3.3.3
所以就这样解决了。
如上所述,Spring boot 2.x 升级到 3.0.X 失败了。 因此我们需要使用经典的 JarLauncher,但新包无法正常工作。因此将 jar 版本提升到 3.3.X,并添加了一个 mavern 设置以使用 CLASSIC jarLauncher。
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2.0-RC1-Release-Notes
这使得 springboot 应用程序启动。 但在 Spring-Ui 页面上没有列出任何操作 “规范中未发现任何操作!”
为此,我们使用 springboot 3.3.0 到 3.3.4 尝试了多种方法,但没有成功。 当版本升级到 3.3.5 时,它开始工作。
希望这对某些人有帮助。