Я обновляюсь с Apache Camel 3.20.x до 4.x.x и обнаружил, что Camel-swagger-java (версия 3.20.x), которая поддерживалась в Camel 3, не поддерживается в Camel 4. Библиотека Camel-swagger-java не имеет Он был обновлен до 4.x.x, как Camel, и последняя доступная версия — только 3.22.1.
Некоторые методы в классе CamelContext (присутствующие в зависимости от Camel-Api), такие как getExtension, которые были доступны в версии 3.20.x и вызываются в классе RestSwaggerSupport (присутствует в Camel-swagger-Java), кажутся устаревшими в классе CamelContext с версиями Camel 4.x.x. из-за чего я получаю NoSuchMethodError.
Проблема возникает при использовании той же версии 3.20.x в Camel-swagger-java с Camel 4.xx. Есть ли способ заставить ее работать с обновлением Camel 4?
java.lang.NoSuchMethodError: 'java.lang.Object org.apache.camel.CamelContext.getExtension(java.lang.Class)'
at org.apache.camel.swagger.RestSwaggerSupport.getRestDefinitions(RestSwaggerSupport.java:133)
Возможно, вы ищете Camel-openapi-java?
Он поддерживался начиная с Camel 3.1 и продолжает поддерживаться в версии 4.x. Когда вы привыкли к Swagger 2.x, вы можете видеть OpenAPI немного похожим на преемника Swagger, но эта запись в блоге описывает его немного лучше:
Самый простой способ понять разницу:
- OpenAPI = Спецификация
- Swagger = Инструменты для реализации спецификации
Таким образом, компонент Camel предоставляет описание вашего REST-интерфейса OpenAPI, а пользовательский интерфейс Swagger — это инструмент для его отображения в браузере, выполнения образцов запросов и т. д.