Как загрузить несколько контекстов верблюда весной - PullRequest
2 голосов
/ 19 июня 2020

Я хочу загрузить несколько файлов контекста верблюда (camel-context. xml; camel-context2. xml) в приложение spring java. Я пытаюсь загрузить файлы описанным ниже способом. Но загружается только один файл.

@SpringBootApplication
@ImportResource({"classpath:camel*.xml"})

На приведенном ниже снимке консоли синий цвет означает успешный ответ, красный - ошибку.

enter image description here

Note : I have tried this approach as well . Didnt workout.
@ImportResource("camel-context.xml", "camel-context2.xml")

1 Ответ

1 голос
/ 19 июня 2020

https://camel.apache.org/manual/latest/camel-3-migration-guide.html#_multiple_camelcontexts_per_application_not_supported

Поддержка нескольких CamelContexts была удалена, и поддерживается только 1 CamelContext на развертывание. Последнее все равно не рекомендовалось и также не было реализовано на 100% (например, в camel-cdi). Для Camel 3 рекомендуется и поддерживается только 1 CamelContext на развертывание.

Но вы можете сделать следующий способ разделения конфигураций маршрута, поскольку это все еще один контекст Camel. https://camel.apache.org/manual/latest/faq/how-do-i-import-routes-from-other-xml-files.html

Файл 1:

<beans ....">

    <routeContext id="myCoolRoutes" xmlns="http://camel.apache.org/schema/spring">

        <route id="cool">
            <from uri="direct:start"/>
            <to uri="mock:result"/>
        </route>
        <route id="bar">
            <from uri="direct:bar"/>
            <to uri="mock:bar"/>
        </route>
    </routeContext>
</beans>

Файл 2: (Файл 1 импортирован)

<beans ..>
    
    <import resource="myCoolRoutes.xml"/>

    <camelContext xmlns="http://camel.apache.org/schema/spring">

        <routeContextRef ref="myCoolRoutes"/>

        <route id="inside">
            <from uri="direct:inside"/>
            <to uri="mock:inside"/>
        </route>
    </camelContext>

</beans>
...