gpt4 book ai didi

java - Camel 分离器 : Add individual headers based on body

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:58 25 4
gpt4 key购买 nike

我正在尝试拆分包含 map 的消息。根据我的教程,我必须使用自定义服务来实现实际拆分

public class CustomService {
public List split(Map map) {
return map.values();
}
}

//route ...
.split().method(CustomService.class, "split")
.choice()
//...
.end()

到目前为止,一切正常。但是,现在我想根据我想在 split(Map) 消息中设置的某些 header 值以不同方式路由消息。是否可以在拆分期间为每条消息添加不同的 header 值?

最佳答案

如果返回 List<Message>,则只能在 split 方法中添加 header 例如 org.apache.camel.Message您可以调整标题的实例。

有些东西很长(介意类似伪代码)

public class CustomService {
public List split(Exchange exchange) {
List list = new ArrayList();

Map map = exchange.getIn().getBody(Map.class);
for (Object value : map.values()) {
// either copy or create a new DefaultMessage
Message msg = new DefaultMessage();
msg.setBody(value);
// we want to copy the existing headers
msg.setHeaders(exchange.getIn().getHeaders();
// and then customize the headers
msg.setHeader("foo", "bar");
list.add(msg);
}
return list;
}
}

关于java - Camel 分离器 : Add individual headers based on body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29560473/

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