聚合器 - 将阵列释放的对象转换为JMS文本消息

时间:2015-11-04 14:42:38

标签: spring-integration

问题: spring集成器将聚合消息作为数组列表发布。如何将聚合响应作为单个jms消息发送?我需要先使用变压器吗?

聚合:

<aggregator 
id="myAgg" 
input-channel="jmsInChannel"
output-channel="outputChannel" 
discard-channel="discardChannel"
ref="myAggBean" 
method="combineRespones"
expire-groups-upon-completion="true"
correlation-strategy-expression="#xpath(payload, '/test/name')"
release-strategy="myAggBean"
release-strategy-method="canRelease"
send-partial-result-on-expiry="false"
send-timeout="5000"
group-timeout="20000"/>

输出频道:

    <channel id="outputChannel">
    <int:queue/>
</channel>

出站适配器:

    <jms:outbound-channel-adapter channel="outputChannel"
    id="jmsOut"
    destination="outboundQueue"/>

更新1 : - 最初此帖子有以下错误,但这是由于我的配置将邮件发送到错误的队列。

错误: 引起:org.springframework.messaging.MessagingException:不支持的有效负载类型[java.util.ArrayList]

1 个答案:

答案 0 :(得分:0)

您的问题不明确

  • 如果您希望将已发布的消息作为单独的文本消息发送到JMS,请在聚合器和出站通道适配器之间添加<splitter/>
  • 如果您希望将列表作为单个消息发送,则需要某种变换器以您希望的方式对其进行格式化。