gpt4 book ai didi

apache-camel - Camel - 保留消息的副本

转载 作者:行者123 更新时间:2023-12-02 04:40:07 28 4
gpt4 key购买 nike

我的 Camel 路线如下(示例)

from (activemq:xyz) --- 从队列接收消息

to(smpp:abc) --- 将消息提交给 SMSC

to(cxf:hij) --- 基于 SMSC 响应成功调用网络服务

我遇到的问题如下

我从队列中收到的交换属性/ header 很少,但在收到来自 SMPP 的响应后,我发送的交换 header /属性已被清除,我无法调用网络服务。在到达路线尽头之前,我该怎么做才能使这些值保持原样。我无法控制 SMSC 的实现,也无法更改 SMSC 的响应。我正在使用 SPRING dsl

最佳答案

您可以考虑使用名为 Content Enricher 的企业集成模式对于 SMPP 部分,使用自定义 AggregationStrategy 来“保留”您的原始交换(具有所有 header 和属性),并从 SMSC 所做的任何事情中获取您需要的东西(我想是正文?)。

from (activemq:xyz)
.enrich(smpp:abc, new PreserveHeadersAndPropertiesAggregationStrategy())
.to(cxf:hij)
;

public class PreserveHeadersAndPropertiesAggregationStrategy implements AggregationStrategy {
@Override
public Exchange aggregate(Exchange original, Exchange resource) {
// use body from getIn() or getOut() depending on the exchange pattern...
original.getIn().setBody(resource.getIn().getBody());
original.getOut().setBody(resource.getOut().getBody());
return original;
}
}

关于apache-camel - Camel - 保留消息的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21012509/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com