Apache Camel: как установить значениеHeader в ноль - PullRequest
0 голосов
/ 29 мая 2018

Как мы устанавливаем значение заголовка как нулевое в сообщении об обмене верблюдами Apache от процессора.Я доставляю сообщение на обмен RabbitMQ, и он ожидает, что одно из значений заголовка будет установлено в ноль.

Я попробовал следующие подходы от моего процессора непосредственно перед доставкой сообщения

exchange.getOut().setHeader("headername","");

Но это устанавливает пустую строку для заголовка.

Я также пытался

exchange.getOut().setHeader("headername",null);

Но в этом случае сам заголовок не виден.

Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

Ответы [ 2 ]

0 голосов
/ 27 июля 2018

Camel внедрил исправление для этого, которое перенесено в версии 2.22.1 и 2.21.3 и будет доступно там и далее.Для тех, кому интересно узнать, как этого можно достичь, ознакомьтесь с вопросом Camel-12654 Jira.

компонент и конечная точка camel-rabbitmq теперь поддерживают параметр URI allowNullHeaders, который по умолчанию имеет значение false.Если вы хотите отправить пользовательские заголовки со значением null, установите для него значение true.Например,

from("rabbitmq://hostname:port/exchangeName?allowNullHeaders=true").....

Это настроит конвертер camel-rabbitmq для установки заголовков с нулевыми значениями.Теперь из вашего процессора вы можете сделать что-то вроде этого

exchange.getOut().setHeader("headername",null);

Это будет указывать производителю camel-rabbitmq не пропускать и заголовки с нулевыми значениями.

0 голосов
/ 29 мая 2018

Компонент camel-rabbitmq не поддерживает заголовки со значениями null.Они отфильтрованы в исходном коде.

https://github.com/apache/camel/blob/fab7a58e56e128286f327aba16c09553b26cb846/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQMessageConverter.java#L171

Это странное требование / вариант использования, чтобы отправлять нулевое значение.И поэтому я прошу вас объяснить это подробнее.Должна быть очень веская причина, чтобы подумать о смене верблюда.

...