Я написал компонент (EHComponent) для обработки ошибок для других компонентов (AComponent).Apache Camel message scope
AComponent считывает из очереди, обнаруживает ошибку, и если генерируется исключение, сообщение получает некоторые заголовки об ошибке, и вызывается сообщение .to ("error.queue"), чтобы поместить сообщение на другое очередь для чтения EHComponent.
EHComponent проверяет заголовки сообщения, относящиеся к типу ошибки, действует соответствующим образом, установив некоторые дополнительные заголовки сообщений (считая, сколько раз это сообщение сделало его к очереди ошибок)
EHComponent множества, значения, то вызывает .to («Original.Queue»), из которого читается AComponent.
Проблема не была исправлена, поэтому возникает новое исключение, поэтому это же сообщение снова проходит процесс.
Проблема, с которой я сталкиваюсь, заключается в том, что во второй раз, хотя я думаю, что это одно и то же сообщение, те заголовки, которые я установил, не существуют.
У меня создалось впечатление, что заголовки сообщений несколько стабильны в Camel, так что, хотя я нахожусь в новом обмене, заголовок сообщения будет неповрежденным. Что мне нужно сделать, чтобы обеспечить доступ к заголовку сообщения из любого компонента на любой части маршрута?
Благодарности
Также см. Этот FAQ об использовании getIn vs getOut в API сообщений Camel во время обработки сообщения: http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html. –