【问题标题】:camel dynamic uri parameter骆驼动态uri参数
【发布时间】:2011-06-17 20:44:36
【问题描述】:

我想像这样用骆驼实现content enricher pattern

from("direct:x").enrich(dynamicUri,new MyAggregatorStrategy()).to("direct:y")

动态 uri 基于来自direct:x 频道的每条消息。 因此,假设有一个带有值 a 的 xml 项进来,那么 uri 应该类似于 http://someurl?q=a 但 dynamicUri 只能是资源通道标识符。

我发现了一些关于此here 的讨论,但我不太了解它,并且我的工作区中没有“HttpProducer.HTTP_URI”。我需要哪个骆驼包,我该怎么做?处理器可能,但如何?

【问题讨论】:

    标签: apache-camel enterprise-integration


    【解决方案1】:

    你用的是什么版本的骆驼?

    从 Camel 2.0 开始,许多用于键的常量名称已移至 org.apache.camel.Exchange 类。所以看看这个类的 HTTP_URI 常量。 这也是维基页面上列出的内容 http://camel.apache.org/http

    Content Enricher 不支持动态 URI,但一些 Camel 组件允许将 uri 设置为标头;比如camel-http。这意味着在您的情况下,您可以使用常量 Exchange.HTTP_URI 将 uri 作为标头提供。

    不过,Camel 中的收件人列表 EIP 模式实际上支持对 URI 进行完全动态的评估,并且还支持聚合。 http://camel.apache.org/recipient-list.html

    所以你可以像这样实现解决方案:

    from("direct:x")
        .recipientList(header("dynamicUriHeader")).aggregationStrategy(new MyOwnAggregationStrategy())
        .to("direct:y");
    

    【讨论】:

      猜你喜欢
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多