Apache Camel Enricher
问题描述:
嗨,我正在学习Apache Camel,并试图创建一个非常简单的服务,它将基于ID的两个XML文件组合起来,并将生成的文件移动到新的位置。在direcotry中有多个文件,所以我需要根据ID过滤它。Apache Camel Enricher
客户XML:
<?xml version="1.0" encoding="UTF-8"?>
<client>
<id>2</id>
<firstName>Clark</firstName>
<lastName>Kent</lastName>
<netWorth>470</netWorth>
</client>
和地址XML:
<?xml version="1.0" encoding="UTF-8"?>
<address>
<id>3</id>
<clients>
<clientId>2</clientId>
</clients>
<city>New York</city>
</address>
所以我想给城市元素从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>
我一直在阅读有关聚合和浓缩商,从我了解的聚合将结合所有XML目录中的文件(不是我真正想要什么)和富集会从其他服务,但如何添加资源是否根据id过滤掉并将其添加到XML结构中,而不仅仅是结尾。
谢谢,对不起,这可能是非常基本的,我只是不知道它。
答
我不知道,如果你已经解决了这个问题,但是你的问题的答案是 - Aggregator在骆驼中有方法,在那里你可以实现你的逻辑,如何处理旧交换和新交换。在这种情况下,您可以获得2个交易所的ID并匹配它。一旦匹配,您可以将取消编组的节点(城市)并将其添加到父级xml中。
由于骆驼的工作方式,这不是微不足道的。第一个问题是,什么会触发你的路线开始?您通常需要某种触发器(队列中的消息,计时器,目录中的新文件等)告诉骆驼走开并做些事情。目前还不清楚你的程序流程需要什么样子。 – 2014-09-01 10:51:49
这是为了学习的目的,所以它真的只是我从命令行开始路由并移动和合并一些文件。 – arduima 2014-09-01 14:48:44