Apache camel 阿帕奇骆驼浓缩器
大家好,我正在学习ApacheCamel,并尝试创建一个非常简单的服务,它根据一个ID组合两个XML文件,并将结果文件移动到一个新位置。目录中有多个文件,因此我需要根据ID对其进行筛选 客户端XML:Apache camel 阿帕奇骆驼浓缩器,apache-camel,Apache Camel,大家好,我正在学习ApacheCamel,并尝试创建一个非常简单的服务,它根据一个ID组合两个XML文件,并将结果文件移动到一个新位置。目录中有多个文件,因此我需要根据ID对其进行筛选 客户端XML: <?xml version="1.0" encoding="UTF-8"?> <client> <id>2</id> <firstName>Clark</firstName> <lastName>Ken
<?xml version="1.0" encoding="UTF-8"?>
<client>
<id>2</id>
<firstName>Clark</firstName>
<lastName>Kent</lastName>
<netWorth>470</netWorth>
</client>
2.
克拉克
肯特
470
和地址XML:
<?xml version="1.0" encoding="UTF-8"?>
<address>
<id>3</id>
<clients>
<clientId>2</clientId>
</clients>
<city>New York</city>
</address>
3.
2.
纽约
因此,我想将城市元素从地址XML添加到客户机XML
<?xml version="1.0" encoding="UTF-8"?>
<client>
<id>2</id>
<firstName>Clark</firstName>
<lastName>Kent</lastName>
<netWorth>470</netWorth>
<city>New York</city>
</client>
2.
克拉克
肯特
470
纽约
我一直在阅读有关聚合器和enricher的内容,据我所知,聚合器将合并目录中的所有XML文件(不是我真正想要的),enricher将添加来自另一个服务的资源,但我如何根据id进行筛选并将其添加到XML结构中,而不仅仅是在最后
谢谢,对不起,这可能真的很基本,我只是不知道。我不知道,如果你已经解决了这个问题,但是,你的问题的答案是-
聚合器在Camel中有一个方法,您可以在其中实现您的逻辑,以及如何处理旧交换和新交换。在这种情况下,您可以获取2个交换的ID并进行匹配。匹配后,您可以获取未经编组的节点(城市)并将其添加到父xml。由于Camel的工作方式,这一点并不简单。第一个问题是,什么会触发你的路线开始?通常,您需要某种触发器(队列中的消息、计时器、目录中的新文件等)来告诉Camel启动并执行某些操作。(对我来说)你的程序流程需要是什么样子还不清楚。这是为了学习,所以我只是从命令行开始,移动并合并一些文件。