在 Header 中将 Header 信息作为 JSONObject 在 Spring-XD 中传递
Passing HeaderInformation as JSONObject in Header in Spring-XD
我在 Header 和下一个 module/processor 中使用以下代码将数据作为 JSONObject 作为字符串传递,但我收到的下一个模块的数据是 "java.io.DataInputStream@7c6a857" 并且无法将其转换回来以 JSONObject 作为字符串。
messageOut = MessageBuilder.withPayload(message-payload).copyHeaders(payload.getHeaders()).setHeader("ActualRecord", JSONObject).build();
我假设您正在使用 RabbitMQ 作为传输。
总线内使用的DefaultMessagePropertiesConverter
默认限制headers为1024字节;任何更大的东西都会在 headers 中保留为 DataInputStream
。 MessagePropertiesConverter
可针对此大小进行配置,但 XD 当前未提供允许增加此大小的设置。
您需要从 DataInputStream 读取到 byte[]
以恢复 JSON。
我开了一个JIRA Issue支持配置LongString
限制
我在 Header 和下一个 module/processor 中使用以下代码将数据作为 JSONObject 作为字符串传递,但我收到的下一个模块的数据是 "java.io.DataInputStream@7c6a857" 并且无法将其转换回来以 JSONObject 作为字符串。
messageOut = MessageBuilder.withPayload(message-payload).copyHeaders(payload.getHeaders()).setHeader("ActualRecord", JSONObject).build();
我假设您正在使用 RabbitMQ 作为传输。
总线内使用的DefaultMessagePropertiesConverter
默认限制headers为1024字节;任何更大的东西都会在 headers 中保留为 DataInputStream
。 MessagePropertiesConverter
可针对此大小进行配置,但 XD 当前未提供允许增加此大小的设置。
您需要从 DataInputStream 读取到 byte[]
以恢复 JSON。
我开了一个JIRA Issue支持配置LongString
限制