作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
from("direct:processRequest").multicast(aggregationStrategy).parallelProcessing().
to("bean:abcService?method=getProductInfo",
"bean:xyzService?method=getProductInfo").end().
to("bean:transformerBean");
上面的路由工作完美,但我想在 to(..)
中使用动态 URL。
因此,我将路线修改为以下内容:
路线:
from("direct:processRequest").multicast(aggregationStrategy).parallelProcessing().
bean(RecipientListBean.class).end().
to("bean:transformerBean");
RecipientListBean.java:
@Component
public class RecipientListBean {
@RecipientList
public String[] route(@Header("countryCode") String countryCode) {
if (StringUtils.equalsIgnoreCase(countryCode, "IN")) {
return new String[]{"bean:xyzService?method=getProductInfo",
"bean:abcService?method=getProductInfo"};
} else {
return new String[]{"bean:xyzService?method=getProductInfo"};
}
}
}
<小时/>
这里它有效,但聚合不起作用。
最佳答案
我不确定multicast()如何与recipientList()交互,但后者已经支持多播/聚合和并行处理的概念。
所以,像这样的东西应该有效:
from("direct:processRequest")
.recipientList(header("myHeader"))
.aggregationStrategy(aggregationStrategy)
.parallelProcessing()
.to("bean:transformerBean");
此外,如果您更喜欢使用 @RecipientList 注释,它还支持并行处理和聚合策略的参数。
关于java - Camel 收件人列表/多播与聚合策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41218544/
我是一名优秀的程序员,十分优秀!