0

我想通过 bean 遍历作为消息头传递给骆驼路由的 java 数组列表,以便每个基本上是 url 的字符串项都可以作为 uri 参数在骆驼路由的标签内传递。

我通过java bean将数组列表作为消息头传递给骆驼路由,如下所示

ArrayList<String> list=new ArrayList<String>();//Creating arraylist  
              list.add("http://www.google.com");//Adding object in arraylist  
              list.add("http://www.stackoverflow.com");  
              list.add("http://www.tutorialspoint.com");  
              list.add("http://localhost:8080/sampleExample/query"); 
                exchange.getOut().setHeader("endpoints",list);

并且,在骆驼路线中,我想遍历这个列表并一个一个地检索每个列表项,以便我可以在 uri 中传递这些项目。这是我的骆驼路线:

<route id="myroute">
        <from id="sedp" uri="cxfrs:http://{{env:POC_HOST}}/{{env:POC_PATH}}"/>
        <log id="_log1" message="Received query request from consumers"/>
        <bean beanType="com.company.myapp.poc.logic.ProcessRequest"
            id="queryProcessor" method="checkRequestType"/>

          // I want to iterate through the list here as <toD uri="${header.endpoints.item}" />


    </route>

但是我无法遍历在骆驼路线中作为 header.endpoints 接收的列表中的每个项目。

4

1 回答 1

0

这是收件人列表 EIP 模式,可以将消息发送到 N+ 个目的地:http ://camel.apache.org/recipient-list.html

收件人列表 EIP 基本上是一个toD但它可以做 1..N 个端点。哪里toD只能做1。

它应该能够按原样获取您的消息标题,例如 a ListorCollection并发送到每个目的地。

也一样

<recipientList>
  <header>endpoints</header>
</recipientList>
于 2017-11-04T08:20:40.047 回答