2017-01-18 1 views
1

Я пытаюсь создать поток Spring XD, который принимает значение-значение поля json-строки. Строка Json отправляется в сообщении через очередь RabbitMQ с заголовком Content-Type of application/json. Spring XD записывает сообщение (строка Json) и записывает его в файл, но не возвращает поле-значение-счетчик или не показывает его в списке весной xd shell (xd:> field-value-counter list).Не удалось получить значение-значение-счетчик Spring XD строки json, которая отправляется через RabbitMQ

Вот моя команда оболочки

stream create rabbitqueue1 --definition "rabbit | log" 

stream create rabbitqueue1jsonset1 --definition "tap:stream:rabbitqueue1 > field-value-counter --fieldName=type --name=proftype" --deploy 

stream create rabbitqueue1out --definition "tap:stream:rabbitqueue1 > file --binary=true --name=rabbitqueue1outfile" --deploy 

stream deploy rabbitqueue1 

Вот пример JSON строка

{ 
"created": "2017-01-18T09:45:34.716+05:30", 
"firstName": "FirstName", 
"id": 1, 
"lastName": "LastName", 
"profileName": "Profname", 
"type": "admin" 
} 

Вопрос заключается в том, почему весне XD поток не учитывает значения полой строки JSON?

ответ

1

FVC может обрабатывать только Tuple или String полезной нагрузки (или java bean).

Источник кролика производит по умолчанию byte[], если только контентный тип text/plain.

Если вы добавите --inputType=text/plain в field-value-counter, шина сообщения преобразует byte[] в String.

Смежные вопросы