apache верблюд REST завершился неудачно с [Ошибка создания бина с именем rest-configuration '] - PullRequest
0 голосов
/ 21 апреля 2020

Мой маршрут выглядит следующим образом -

@Override
    public void configure() throws Exception {

        from("kafka:adapterTopic")
        .to("rest://post:gatewayinbound-dev11.devsite.com");
    }

Я тоже пробовал с этим,

.to("rest:post:gatewayinbound-dev11.devsite.com");

и с этим,

restConfigutation().host("gatewayinbound-dev11.devsite.com");
from("kafka:adapterTopic")
.to("rest:post:provideStatus/");

I Я пытался с camel-rest-starter зависимостью в classpath и без нее.

Я пытался поместить camel-rest вместо camel-rest-starter в pom.

Но ничто не делает исключения на расстоянии go, ниже находится трассировка стека-

{"timestamp":"2020-04-21 18:17:45.327","severity":"ERROR","class":"org.springframework.boot.SpringApplication","crId":"","msg":"Application run failed","exception":"org.apache.camel.RuntimeCamelException","cause":"org.apache.camel.FailedToCreateRouteException: Failed to create route route10 at: >>> To[rest:post:gatewayinbound-dev11.devsite.com] <<< in route: Route(route10)[[From[kafka:adapterTopic]] -> [To[rest:... because of Failed to resolve endpoint: rest:\/\/post:gatewayinbound-dev11.devsite.com due to: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rest-configuration' defined in class path resource [org\/apache\/camel\/model\/rest\/springboot\/RestConfigurationDefinitionAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.camel.spi.RestConfiguration]: Factory method 'configureRestConfigurationDefinition' threw exception; nested exception is java.lang.IllegalArgumentException: Cannot configure option [useXForwardHeaders] with value [true] as the bean class [org.apache.camel.spi.RestConfiguration] has no suitable setter method, or not possible to lookup a bean with the id [true] in Spring Boot registry"

Пожалуйста, помогите мне здесь. Глядя на примеры на веб-сайте Camel, довольно легко настроить конечную точку производителя отдыха, но для меня это было очень сложно.

Edit-

Поскольку компонент Rest является часть верблюжьего ядра, я использовал camel-core-2.22.1 .

Тогда, как подсказал Рауль Канчино, я тоже это попробовал -

to("rest:post:provideStatus?host=gatewayinbound-dev11.devsite.com:443")

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Проблема была с версией библиотеки Camel-Core, которую использовало мое приложение (в качестве транзитивной зависимости), когда я перешел на Camel-Core-2.24.2, проблема была решена.

Я сравнил классы org. apache .camel.spi.RestConfiguration из обеих версий camel-core, 2.22.1 и 2.24.2, и обнаружил, что свойство useXForwardHeaders отсутствует в старых версия.

0 голосов
/ 22 апреля 2020

, пожалуйста, попробуйте следующий формат uri в to (), в качестве отправной точки:

to("rest:post:provideStatus?host=gatewayinbound-dev11.devsite.com:443")

, затем вы можете переключиться на конфигурацию rest

restConfiguration().host("gatewayinbound-dev11.devsite.com:443");

также, используя camel- http это будет:

.setHeader(Exchange.HTTP_METHOD,constant(org.apache.camel.component.http.HttpMethods.POST))
.to("https:gatewayinbound-dev11.devsite.com/provideStatus?bridgeEndpoint=true")

Надеюсь, это работает для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...