拆分apache camel后恢复头值

时间:2014-09-01 14:45:30

标签: xml apache-camel

我有一个xml,我在Spring DSL中使用split标签进行处理。 我正在做的基本上是在xml中搜索一个值,当我找到这个值时,我需要获取另一个标记的值,相同元素的子节点并保存到标题中。这个操作看起来很简单,但是我不能在分割之外恢复我的标题,我需要这样做。我尝试使用标题和属性,结果是一样的。

请帮我弄清楚我做错了什么。

代码示例:

<route>
...
<split>
    <xpath>//FatherTag/ChildTag</xpath>
    <to uri="direct:processingRoute"/>
</split>

</route>

<route>
<from uri="direct:processingRoute"/>
<choice>
<when>
<simple>....</simple>
    <setHeader headerName="foo">
        <constant>test</constant>
    </setHeader>
</when>
</choice>

</route>

1 个答案:

答案 0 :(得分:0)

您需要定义AggregationStrategy。来自Camel Splitter

  

Splitter返回的内容

     

Camel 2.3及更新

     

Splitter默认返回原始输入消息。

     

适用于所有版本

     

您可以通过将自己的策略作为 AggregationStrategy 来实现覆盖。

您的AggregationStrategy需要检查每个子标记的相应标头集,并将其传递给生成的Exchange输出消息以进行拆分操作。