我想通过bean遍历作为消息头传递给camel路由的java arraylist,这样每个字符串项基本上都是一个url,可以作为uri参数传递给camel路由中的tag。
我通过java bean将数组列表作为消息头传递给camel路由,如下所示
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在camel route中。
答案 0 :(得分:0)
这是收件人列表EIP模式,而不是向N +目的地发送邮件:http://camel.apache.org/recipient-list.html
收件人列表EIP基本上是toD
,但它可以执行1..N个端点。 toD
只能做1。
它应该能够按原样显示您的邮件标题,例如List
或Collection
并发送到每个目的地。
所以
<recipientList>
<header>endpoints</header>
</recipientList>