Apache Camel单一路由从多个源获取消息

时间:2015-09-09 17:09:29

标签: apache-camel

我需要编写一个Apache Camel路由到

  1. 从Active-MQ JMS-Queue接收消息(包含文件位置)。
  2. 使用来自JMS-Queue的已接收消息中的位置读取文件内容。
  3. 将该文件内容发送到另一个Active-MQ JMS-Queue。
  4. 我可以写两个单独的路由1)从Active-MQ和。获取消息   2)使用静态文件名从文件夹中读取文件并发送到JMS队列。 但我的要求是只从那些文件中读取内容,我从JMS队列中获取详细信息。从文件中读取内容的方法是选择性的,并且基于条件。

    以下是我需要的示例Java DSL路由配置。

    from("activemq:queue:filelocationQueue")
     .from("file://<<File-Location from JMS-Queue>>?noop=true")
       .convertBodyTo(String.class)
          .to("activemq:queue:fileContent");
    

    我知道不可能使用两个&#34;来自&#34;在路线内。但是我如何使用Apache Camel来设置这种逻辑呢?

    伙计们请建议我解决方案,我也准备使用两个Camel路由来实现这个逻辑。

1 个答案:

答案 0 :(得分:0)

您可以使用Content Enricher EIP及其pollEnrich方法:

{{1}}

pollEnrich的URI是使用当前Exchange的值动态计算的。