【问题标题】:Camel / AggregationStrategy after tokenizeXMLtokenizeXML 之后的 Camel / AggregationStrategy
【发布时间】:2013-06-04 08:22:13
【问题描述】:

我想知道split().tokenizeXML后保存的订单数

我有一个 xml

<orders>
 <order>
 ....

我的路线

.split().tokenizeXML("order")
 .unmarshal("xmlbsondataformat")
 .beanRef("orderShopConnector", "saveOrder")

在我的 bean orderShopConnector 中,我添加了标头属性 saveOK=1。

headers.put("ordersave",1);

现在,我想知道在 firstexchange 属性中保存的订单总和。 我认为使用 AggregationStrategy 但我看不到 tokenizeXML 之后如何使用,有可能吗?

【问题讨论】:

    标签: osgi apache-camel apache-karaf


    【解决方案1】:

    查看 Camel 文档中的示例,您可以了解如何同时使用标记器和聚合策略:http://camel.apache.org/splitter,例如在 Split aggregate request/reply sample 示例中。 p>

    【讨论】:

    • 是的,我正在使用此示例和 camelinaction,但问题是我无法将聚合策略与 tokenizeXML 一起使用。 split(body().tokenizeXML("order"),我没有函数 tokenizeXML( 在 body() 之后。我只能在 split().tokenizeXML() 之后使用 tokenizeXML,所以我不能放置 AggregationStrategy。我使用 java dsl。所以我的主要问题是:我将 AggrationStrategy 与 java dsl 和 tokenizeXML() 放在哪里?谢谢克劳斯 ;-)
    • 使用 org.apache.camel.language.tokenizer.TokenizeLanguage#tokenizeXML 的静态导入
    • 在 body() 上记录了一张开箱即用的 tokenizeXML - issues.apache.org/jira/browse/CAMEL-6422
    • 感谢克劳斯,我如何在我的示例中使用静态导入。我添加行 import static org.apache.camel.language.tokenizer.TokenizeLanguage.tokenizeXML;
    • 然后用tokenizeXML代替body(),例如split(tokenizeXML(a, b), new MyAggStrategy())
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    相关资源
    最近更新 更多