Есть другой способ запустить мое приложение Spring Boot — через класс Springboot JarLauncher. Я обновил свои jar-файлы Springboot с 3.1.x до 3.3.x, и этот jarlauncher был перенесен в другой пакет, но хорошие ребята из Spring все равно вернули исходный пакет (в более поздних версиях). Итак, после обновления версий мое приложение Springboot не запустилось, оказывается, это был класс JarLauncher.
Таким образом, мы можем переключиться на классический класс JarLauncher с помощью настройки maven.
Приложение теперь работает, но на странице 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
Подробнее здесь: https://stackoverflow.com/questions/793 ... arlauncher