gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:37:38 29 4
gpt4 key购买 nike

我的 Camel 路线如下(示例)

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

to(smpp:abc) --- 提交短信至短信中心

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

我面临的问题如下

我从队列中收到的交换属性/ header 很少,但在收到 SMPP 的响应后,我发送的交换 header /属性被清除,无法用于调用 Web 服务。我该怎么做才能保持这些值不变,直到到达路线终点。我无法控制 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/

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