Apache骆驼的多个端点

时间:2020-09-01 13:23:10

标签: xml groovy apache-camel spring-camel

我执行sql选择并将数据保存为CSV。 在这里,我想将sql结果发送到两个端点。

我正在使用骆驼2.12.3版本

我尝试使用多播,但不适用于第二个端点。 我只在第一个文件中有sql结果,而在第二个文件中没有

<to uri="sql:{{export.select.query}}?dataSource=selectDataSource" />
    <marshal>
        <csv autogenColumns="true" delimiter="|" />
    </marshal>
        <multicast stopOnException="true">
            <to uri="file:{{export.select.dir}}?fileName=${property.exportSelectFileName}_exportSelect.csv&amp;charset=utf-8" />
            <to uri="file:{{export.select_2.dir}}?fileName=exportSelect_${property.exportSelectFileName}.csv&amp;charset=utf-8&amp;fileExist=Append" />
        
    </multicast>

您还有其他建议吗?否则,是否有可能通过常规方法做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以使用窃听来复制消息并将其发送到第一个端点。 或者将主体放在属性中,并在第一个端点调用之后获取它。 区别在于您的错误处理策略。

答案 1 :(得分:0)

我在下面找到了它,对我来说很好

<recipientList>
     <constant>file:{{export.select.dir}}?fileName=${property.exportSelectFileName}_exportSelect.csv&amp;charset=utf-8,file:{{export.select_2.dir}}?fileName=exportSelect_${property.exportSelectFileName}.csv&amp;charset=utf-8&amp;fileExist=Append </constant>
</recipientList>