【发布时间】:2014-01-07 02:59:25
【问题描述】:
我需要问一个关于 Apache Camel 路由中运算符“选择何时”的问题。在以下示例中,如果我有两个具有 1、2 值的 soap-env:Order 元素,那么我想创建两个名为 output_1.xml 和 output_2.xml 的 xml 文件。但是,代码只能创建一个文件 output_1.xml。 谁能给我任何想法或提示?感谢您的帮助。
public void configure() {
...
from("direct:a")
.choice()
.when(ns.xpath("//soap-env:Envelope//soap-env:Order='1'"))
.to("file://data?fileName=output_1.xml")
.when(ns.xpath("//soap-env:Envelope//soap-env:Order='2'"))
.to("file://data?fileName=output_2.xml")
.when(ns.xpath("//soap-env:Envelope//soap-env:Order='3'"))
.to("file://data?fileName=output_3.xml")
}
【问题讨论】:
-
其他选项是使用 Splitter 并为每个 Soapenv 直接调用:a。
-
嗨,Leo,我使用了 Splitter,问题是我的输入文件根据条件分成了几条消息,但我想要一个完整的文件,以便我可以创建一个新的输出文件。
标签: apache-camel content-based-retrieval