Apache Camel - Multicast - Camel中是否存在“null”或类似端点?

时间:2013-10-01 05:30:03

标签: java apache-camel

请原谅这是我的第一个Camel申请

  1. 要回复网络请求,我从两个不同来源采购内容。
  2. 因此,我向两个方法发出多播请求并将其并行化。
  3. 响应是一个编组的JSON对象(使用camel-jackson)
  4. 一切正常。

    public class RestToBeanRouter extends RouteBuilder{
    
    @Override
    public void configure() throws Exception {
    
        from("cxfrs://bean://rsServer")
    
                .multicast()
                .parallelProcessing()
                .aggregationStrategy(new CoreSearchResponseAggregator())
                .beanRef("searchRestServiceImpl", "firstMethod")
                .beanRef("searchRestServiceImpl", "secondMethod")
                .end()
                .marshal().json(JsonLibrary.Jackson)
                .to("log://camelLogger?level=DEBUG");
    
    }
    

    问题:

    多播路由需要DSL中的to。目前,我将其映射到log端点。这样好吗?

    由于我没有使用to并且聚合器策略的最后一次交换是返回给用户的那个,我的端点是否应该被配置为其他东西 - 比如null或者什么? (啊,愚蠢的开始)

1 个答案:

答案 0 :(得分:0)

为了SO访问者的利益,请复制Camel邮件列表中提供的解决方案:

Robert Simmons Jr. MSc。 - Lead Java Architect @ EA 作者:Hardcore Java(2003)和Maintainable Java(2012)

聚合交换是返回的交换以及如何返回 创建聚合交换取决于您使用的聚合策略。 当一条路线通过呼叫停止或仅仅不再路由而停止时, 路线最后一部分的交换可视为回复。在 大多数情况下它会回复给调用者(除非你设置了回复 基于JMS的路由或其他一些情况下的目标)。在你的情况下,如果所有 你想做的是返回丰富的交换,然后你不需要任何() 呼叫。在元帅之后停下来。