骆驼路线经过中间处理

时间:2017-03-28 17:37:10

标签: post apache-camel camel-http

我需要编写一个将文件发送到Web服务的Camel路由。在将文件发送到端点之前,我必须查询数据库以获取一些信息,并将文件连同其他信息一起发送到端点。在整个路由完成后,我还必须将文件移动到另一个目录。我能够独立创建路线的各个部分。我想知道如何在一条路线上做到这一点。

1 个答案:

答案 0 :(得分:0)

您的设计决定如何做到这一点。 您可以将各个部分作为子路径(这是我的首选方式)。

它使路线更具功能性,至少更具可读性。  然后,您可以使用multicast组件将消息(文件)一个接一个地或并行地传递给它们。

XML DSL中的

看起来像:

<route id="main-route">
    <from uri="..." />
    <!-- DB processing --> 
    <to uri="direct:db-route-endpoint"/>
    <multicast parallelProcessing="false">
    <!-- No parallel processing: file will be stored after Web Service call completed
         or for parallel parallelProcessing="true" -->"
        <to uri="...web service endpoint... "/>
        <to uri="direct:store-file-endpoint"/>
    </multicast>
</route>

<route id="db-route">
    <from uri="direct:db-route-endpoint" />
    ... DB processing ...
</route>

<route id="store-file-route">
    <from uri="direct:store-file-endpoint" />
    ... save file to another directory ...
</route>