我需要编写一个将文件发送到 Web 服务的 Camel 路由。在将文件发送到端点之前,我必须查询数据库以获取一些信息并将文件连同其他信息一起发送到端点。整个路线完成后,我还必须将文件移动到另一个目录。我能够独立创建路线的各个部分。我想知道如何在一条路线上做到这一点。
问问题
215 次
1 回答
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>
于 2017-03-28T23:30:56.700 回答