0

请原谅愚蠢,因为这是我的第一个骆驼应用程序

  1. 为了响应网络请求,我从两个不同的来源获取内容。
  2. 因此,我正在向两种方法发出多播请求并将其并行化。
  3. 响应是一个编组的 JSON 对象(使用 camel-jackson)

一切正常。

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");

}

问题 :

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

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

4

1 回答 1

0

为了 SO 访问者的利益,请在此处复制 Camel 邮件列表中给出的解决方案:

小罗伯特·西蒙斯(Robert Simmons Jr.) 理学硕士。- 首席 Java 架构师 @ EA 作者:Hardcore Java (2003) 和 Maintainable Java (2012)

聚合交换是返回的交换,聚合交换的创建方式取决于您使用的聚合策略。当路由通过调用 stop 或不再路由而停止时,路由最后部分的交换可被视为回复。在大多数情况下,它会回复调用者(除非您在基于 JMS 的路由或其他情况下设置回复目的地)。在您的情况下,如果您只想返回丰富的交换,那么您不需要任何 to() 调用。就在元帅之后停下来。

于 2013-10-06T15:40:15.073 回答