Не знаю, имеете ли вы в виду свойства приложения (например, в файлах свойств Java ) или свойство Exchange , как в объекте Camels Exchange для переноса сообщения.
Однако это звучит как последний, поскольку свойства приложения обычно не передаются.
Свойства Exchange являются лишь частью Camel-оболочки вокруг сообщения во время обработки.Если вы отправляете сообщение во время обработки маршрута в другую конечную точку, как при .to(endpoint)
, обычно отправляется только сообщение , а Exchange выбрасывается .
from(endpoint)
.setProperty("myProperty", value)
.to("activemq:queue:myQueue")
// myProperty is no more available at myQueue
Конечно, есть исключения, это зависит от типа конечной точки.Например, при отправке на прямые конечные точки (синхронная конечная точка Camel в памяти) Exchange выживает.Но прямые конечные точки не работают в разных контекстах Camel.Для других типов конечных точек, таких как HTTP, JMS и т. Д., Свойства теряются.
Поэтому, если вы хотите установить «переменную сообщения», которая передается на другие конечные точки , особенно в различных контекстах Camel, вы должны установить заголовок сообщения .
from(endpoint)
.setHeader("myHeader", value)
.to("activemq:queue:myQueue")
// myHeader is still available at myQueue