Мой фактический код (Camel 2.10.x) создает новое сообщение Camel для переноса некоторых данных (http-запрос) следующим образом:
Message message = new DefaultMessage();
message.setHeader(HEADER_QUERY, query);
message.setHeader(HEADER_BRAND, brand);
message.setHeader(HEADER_LIST_ID, listId);
И пока я переношу свою платформу, мы используем версию Camel: 2.23.0, и теперь мы видим, что пустой конструктор устарел. При выполнении кода возникает та же проблема, что и в это сообщение с официального форума Camel.
Кажется, хороший способ создать сообщение с помощью конструктора с параметром CamelContext in следующим образом:
Message message = new DefaultMessage(camelContext);
message.setHeader(HEADER_QUERY, query);
message.setHeader(HEADER_BRAND, brand);
message.setHeader(HEADER_LIST_ID, listId);
Я нахожусь в контексте OSGI, но код находится в Bean-компоненте, где у меня нет ни Exchange
, ни исходного Message
. Мне просто интересно, как я могу предоставить CamelContext
конструктору сообщений или есть другой способ создать DefaultMessage
без CamelContext.
Обратите внимание, что я не нахожусь в Camel Route, Bean вызывается из интерфейса REST (я подозреваю, что есть некоторый рефакторинг, чтобы очистить это, но мы планируем списать его в ближайшее время). Я ищу решение для быстрой победы.