【问题标题】:Aggregator - Convert Array Released Object to JMS Text Message聚合器 - 将数组释放对象转换为 JMS 文本消息
【发布时间】:2016-02-05 02:44:05
【问题描述】:

问题: 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]

【问题讨论】:

    标签: spring-integration


    【解决方案1】:

    你的问题不清楚

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

    【讨论】:

    • 是的,我想将聚合消息作为单个消息发送。我会用变压器。我认为对象到字符串的转换器将是我需要传递给出站适配器的全部内容,但它仍将其以对象形式保存在队列中。
    • 更新了问题以供将来参考。
    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多