Пользовательская агрегация в Mule ESB - PullRequest
2 голосов
/ 28 декабря 2011

У меня есть следующий вариант использования в Mule ESB -

  1. Предоставление конечной точки SOAP
  2. В зависимости от атрибута в запросе SOAP выполните условную маршрутизацию
    a.Если значение параметра равно «a», то получите ответ от одного исходящего веб-сервиса
    b.Если значение параметра равно «b», то получите ответы от нескольких исходящих сервисов и агрегируйте их, используя пользовательское агрегирование.

Как мне сделать это с помощью Mule ESB?

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Для начала, вот несколько соответствующих страниц руководства пользователя:

  1. Предоставление веб-сервисов: http://www.mulesoft.org/documentation/display/MULE3USER/Building+Web+Services+with+CXF
  2. Условная маршрутизация: http://www.mulesoft.org/documentation/display/MULE3USER/Routing+Message+Processors#RoutingMessageProcessors-Choice

    а. Использование удаленных веб-сервисов: http://www.mulesoft.org/documentation/display/MULE3USER/Consuming+Web+Services+with+CXF

    б. Настраиваемое агрегирование: http://www.mulesoft.org/documentation/display/MULE3USER/Routing+Message+Processors#RoutingMessageProcessors-CustomAggregator или, альтернативно, выполнение обогащения нескольких сообщений с помощью: http://www.mulesoft.org/documentation/display/MULE3USER/Message+Enricher

0 голосов
/ 10 августа 2016

хорошо, я предлагаю взглянуть на компонент разброса, было бы неплохо для того, что вам нужно.

Вы можете прочитать об этом в следующей ссылке: https://docs.mulesoft.com/mule-user-guide/v/3.6/scatter-gather

Основная идея - сделать что-то вроде этого:

<scatter-gather doc:name="Scatter-Gather">
        <processor-chain>
            <flow-ref name="getUnitedFlightsFlow" doc:name="getUnitedFlightsFlow"/>
            <filter ref="FilterNotArrayList" doc:name="Filter not an ArrayList"/>
        </processor-chain>
        <processor-chain>
            <flow-ref name="getDeltaFlightsFlow" doc:name="getDeltaFlightsFlow"/>
            <filter ref="FilterNotArrayList" doc:name="Filter not an ArrayList"/>
        </processor-chain>
        <processor-chain>
            <flow-ref name="getAmericanFlightsFlow" doc:name="getAmericanFlightsFlow"/>
            <filter ref="FilterNotArrayList" doc:name="Filter not an ArrayList"/>
        </processor-chain>
    </scatter-gather>

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

Надеюсь, это поможет вам.

...