Обмен заголовками сообщений - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь установить заголовок сообщения обмена. Мне нужна помощь в форматировании кода. Мне нужно установить значения ниже в заголовке

usr.Person.Name = "Peter"
usr.Person.ID = "ABC123"

Я пытался

exchange.getIn().setHeader("usr.Person.Name", "Peter");
exchange.getIn().setHeader("usr.Person.ID", "ABC123");

Но когда я вижу в Active MQ, он отформатирован как

usr_DOT_Person_DOT_Name: Peter
usr_DOT_Person_DOT_ID : ABC123

Мне нужно чтобы напечатать как есть, я пытался гуглить, но не повезло. Есть предложения ??

Ответы [ 2 ]

2 голосов
/ 24 февраля 2020

В спецификации JMS нарушается использование символа . в имени заголовка / свойства сообщения, поэтому компонент Camel JMS переводит его в DOT, как указано в документации, Вы всегда можете перевести его обратно в исходный формат при прочтении.

0 голосов
/ 24 февраля 2020

Из Camel в действии

В Camel заголовок может быть назван как угодно, вписывающийся в строку Java, и его значением может быть любой объект Java. Это создает некоторые проблемы при отправке и получении от JMS-адресов.

... Любые символы точки (.) Заменяются на DOT , а любые дефисы (-) заменяются на HYPHEN . Например, заголовок с именем org. apache .camel.Test-Header будет преобразован в org_DOT_apache_DOT_camel_DOT_Test_HYPHEN_Header перед отправкой в ​​место назначения JMS. Если это сообщение используется верблюжьим маршрутом в какой-то точке по линии, имя заголовка будет преобразовано обратно.

Также эту информацию можно найти здесь https://camel.apache.org/components/latest/jms-component.html в Раздел «СООБЩЕНИЕ ЗАГОЛОВОК».

...