无法获取通过 RabbitMQ 发送的 json 字符串的 Spring XD 字段值计数器

Couldn't get Spring XD field-value-counter of a json string that is sent through RabbitMQ

我正在尝试构建一个采用 json 字符串的字段值计数器的 Spring XD 流。 Json 字符串通过 RabbitMQ 队列在消息中发送,消息头内容类型为 application/json。 Spring XD 记录消息(Json 字符串)并将其写入文件,但它不会 return 字段值计数器,也不会在 [=33= 中的列表中显示它] xd shell (xd:>字段值计数器列表).

这是我的 shell 命令

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"
 }

问题是为什么 Spring XD 流不计算 json 字符串的字段值?

FVC 只能处理 TupleString 有效负载(或 java bean)。

Rabbit 源默认生成 byte[],除非 content-type 是 text/plain

如果您将 --inputType=text/plain 添加到 field-value-counter,消息总线会将 byte[] 转换为 String