Итерирование пользовательских коллекций в Apache

Я получил требование, которое я имею на основном маршруте и дочернем маршруте. В основной маршрут попадет список объектов, там мне нужно сделать вызов дочернему маршруту для каждого отдельного элемента в списке. Затем в дочернем маршруте вызовет веб-сервис, добавив этот элемент в качестве одного из параметров.

Код:

from("direct:SupplierRoute")
                .choice()
                .when(header(IS_SUPPLIER_AVAILABLE).isEqualTo(true))
                .split(body())
                .parallelProcessing()
                .streaming()
                .to("direct:SUPGetHotelAggregatorRatesRQ")
                .bean(parallelProcessingRequestProcessor)
                .end()
                .end()
                .end();
 from("direct:SUPGetHotelAggregatorRatesRQ")
                .process(startOperation(DISTRIBUTION, GET_HOTEL_AGGREGATOR_RATES_API_GENERATE_VM_REQUEST))
                .to("velocity:velocity/GetHotelAggregatorRatesRQToGetHotelSupplierRatesRQ.vm")
                .process(endOperation(DISTRIBUTION, GET_HOTEL_AGGREGATOR_RATES_API_GENERATE_VM_REQUEST))
                .end();

Я устанавливаю значение для тела обмена, как показано ниже,

 public static final List<HotelRefs.HotelRef> supplierHotelRefs = new ArrayList();
 exchange.getIn().setBody(supplierHotelRefs);

Но приведенный выше пример кода не работал. Если кто-нибудь даст нам знать, есть ли какой-нибудь подход в верблюде для перебора пользовательских коллекций на уровне маршрута.

Спасибо, Рагхаван

1 ответ

Поместите инструкцию log после Splitter и запустите код.

.split(body())
.log("How many log lines do you receive?")

Если вы получите только одну строку журнала, Splitter не будет работать должным образом. Затем вы можете попробовать использовать другую версию Camel.

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

Если вы не получите никакой строки журнала, ваше состояние в when не устраивает.

Другие вопросы по тегам