我正在尝试拆分包含地图的邮件.根据我的教程,我必须使用自定义服务来实现实际的拆分
public class CustomService {
public List split(Map map) {
return map.values();
}
}
//route ...
.split().method(CustomService.class, "split")
.choice()
//...
.end()
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切正常.但是,现在我想根据我想在split(Map)消息中设置的一些标题值来不同地路由消息.是否可以在拆分期间为每条消息添加不同的标头值?
如果你返回你只能添加页眉中的断续方法List<Message>如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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4271 次 |
| 最近记录: |