Как передать контекст между 2 верблюжьими маршрутами (в том же camelContext) - PullRequest
1 голос
/ 12 октября 2011

Вот как работает мое приложение:

Пользователь начинает заполнять форму и отправляет ее. Это действие запускает первый camelroute, который выполняет некоторую обработку, пока не вернет пользователю вид «Пожалуйста, подождите, обработка вашего запроса ...».

Это представление отправляет AJAXRequest, который запускает второй маршрут для запуска.

Первый маршрут обогащает объект контекстными данными, о которых мне нужно знать второй маршрут. Как мне это сделать?

Он хранится в заголовке in.header первого маршрута и содержит большое количество справочных полей, которые имеют несколько уровней глубины, что делает его менее радостным отправлять их как части запроса формы HTML

Есть ли хороший способ отправки объекта между маршрутами?

1 Ответ

0 голосов
/ 13 октября 2011

Как правило, JMS является хорошим выбором для обмена данными между маршрутами, которые выполняются асинхронно.В вашем случае использования есть дополнительное требование о необходимости соотносить обогащенное сообщение с последующим запросом (по идентификатору запроса и т. Д.).

Одним из вариантов является использование селекторов JMS для извлечения соответствующих обогащенных сообщений на вашем втором маршруте.

Другой вариант (вместо использования JMS) - использовать кэш в памяти ( camel-cache или camel-hazelcast ) для хранения ваших обогащенных сообщений в памяти,затем получите / очистите их по второму маршруту.

[todo: добавить примеры]

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