Redhat JBoss Fuse & Apache Camel - Как вложенные маршруты XML с 3 файлами? - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь вызвать маршрут в XML-файле с 3 уровнями 1) Сначала можно вызывать вложенные маршруты без ограничений?

2) Это мой пример: Мой первый вызов файла RootFile01.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Configures the Camel Context -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="  http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd          http://camel.apache.org/schema/spring   http://camel.apache.org/schema/spring/camel-spring.xsd">
    <!-- Import Framework. -->
    <import resource="classpath*:META-INF/spring/camel-context-framework*.xml"/>
    <import resource="File0A01.xml"/>


    <import resource="File0B01.xml"/>


    <camelContext id="camelContext-db465ea3-e2da-4931-8902-0c771d2eac3c" xmlns="http://camel.apache.org/schema/spring">
        <routeContextRef ref="routeContextNested0A01"/>
        <routeContextRef ref="routeContextNested0B01"/>
        <route handleFault="true" id="_route1">
            <from id="_from1" uri="coveo-soap://test"/>
            <recipientList id="_recipientList1">
                <method ref="soapDynamicRouter"/>
            </recipientList>
        </route>
    </camelContext>
</beans>

Мой второй файл File0A01.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Configures the Camel Context -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="  http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd          http://camel.apache.org/schema/spring   http://camel.apache.org/schema/spring/camel-spring.xsd">
        <routeContext id="routeContextNested0A01"
        xmlns="http://camel.apache.org/schema/spring">

        <route handleFault="true" id="routeNested0A01">
            <from uri="direct://Nested0A01" />

            <log message="=Data In ${body}"></log>

            <to uri="direct://routeNested0B01" />

        </route>

    </routeContext>
</beans>

Мой третий файл File0B01.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:camel="http://camel.apache.org/schema/spring"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

    <routeContext id="routeContextNested0B01"
        xmlns="http://camel.apache.org/schema/spring"> 
        <route id="routeNested0B01">
            <from uri="direct://routeNested0B01"/>

            <log message="Data In - ${body}"></log>

        </route>
    </routeContext>
</beans>

Кажется, RootFile01.xml может найти routeNested0A01 во втором файле File0A01.xml.Но мой второй файл File0A01.xml не может достичь routeNested0B01 в моем третьем файле File0B01.xml.

Сообщение об ошибке: исчерпано после попытки доставки: 1 перехвачено: org.apache.camel.component.direct.DirectConsumerNotAvailableException: нет доступных потребителейв конечной точке: конечная точка [direct: // routeNested0B01]

Как решить эту проблему?

...