gpt4 book ai didi

split - 如何在Apache Camel 的内部拆分中使用外部拆分的CamelSplitIndex

转载 作者:行者123 更新时间:2023-12-01 12:25:05 29 4
gpt4 key购买 nike

我必须为数组 B 的每个元素调用一个服务。但数组 A 在数组 A 内。所以我试图在camel_Context.xml 中使用拆分内拆分,如下所示。执行完所有内部拆分数组值后,我还需要聚合它们。

<split>
<jsonpath>$.Request.Fruits</jsonpath>
<split>
<jsonpath>$.request.Fruits[index].item</jsonpath>

<to someURI>
</split>
</split>

我在内部拆分中使用的索引应该表示外部拆分的当前迭代。 CamelSplitIndex 将为您提供内部拆分的迭代次数。我不确定如何在外部拆分中使用任何显式计数器。请问还有其他方法可以实现我的目标吗?

最佳答案

您可以设置自定义标题

<split>
<jsonpath>$.Request.Fruits</jsonpath>
<setHeader headerName="OuterIndex">
<simple>${header.CamelSplitIndex}</simple>
</setHeader>
<split strategyRef="aggregatorBean">
<jsonpath>$.request.Fruits[index].item</jsonpath>
<setHeader headerName="InnerIndex">
<simple>${header.CamelSplitIndex}</simple>
</setHeader>
<to someURI>
<log message="Hello from inner ${header.InnerIndex} of outer ${header.OuterIndex}" />
</split>
</split>

您可以将 bean 用作 AggregationStrategy使用您的逻辑聚合结果(有关更多详细信息,请参阅 Splitter pattern page)。在这种策略中,如果需要,您可以读取两个标题。

介意各 <split>会自动迭代你的数组,就像java增强 for ,所以想象一下路线大致如下:
// <split> is very much like
for (Fruit f : request.getFruits()) {
// outer loop
for (Item i : f.getItems() {
// inner loop, <to someURI> is located here
}
}

关于split - 如何在Apache Camel 的内部拆分中使用外部拆分的CamelSplitIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40631476/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com