Я использую AMQs REST API для отправки сообщения в очередь с заголовком, заданным в queryString.
Я устанавливаю заголовок даты myDateHeader
со значением миллисекунды UNIX метка времени.
&myDateHeader=1583781133771
Для меня автоматически устанавливается заголовок JMSTimestamp
, а также кажется, что он длинный ...
Затем я потребляю это сообщение с верблюдом, хотя и в Talend, и может «проанализировать» JMSTimestamp
до форматированной даты.
Однако, когда я пытаюсь сделать то же самое с myDateHeader
, я получаю null
обратно.
И JMSTimestamp
, и myDateHeader
показывают значения, если я "разбираю" на String
и Long
, так что что-то (не) происходит как часть анализа даты.
Talend код показывает
row5.Event_Timestamp = org.apache.camel.builder.SimpleBuilder
.simple("${in.header.myDateHeader}")
.evaluate(routerExchange, java.util.Date.class);
, показывая правильный resultType
согласно классу SimpleBuilder
. Код такой же, как и для анализа JMSTimestamp
.
Также, когда я пытаюсь
simple("${date:in.header.myDateHeader:yyyyMMdd}")
, я получаю
java.lang.IllegalArgumentException: Cannot find java.util.Date object at command: in.header.myDateHeader
Я предполагаю:
1) что при создании сообщения необходимо установить заголовок с правильным типом Date
, чтобы иметь возможность выполнять анализ этой даты как часть потребления?
2) И что REST API устанавливает все заголовки с типом String
, и я не могу изменить это с помощью моего вызова REST?
Извините, но я надеюсь, что кто-то может подтвердить вышеизложенное, и, следовательно, что я не могу трактовать myDateHeader
так же, как заголовок JMSTimestamp
при использовании этих сообщений?
спасибо