2015-08-28 96 views
0

我试图创建一个终端依赖传入消息的路由。目的是在不同的数据库和集合中写入一个mongodb。阿帕奇骆驼动态设置mongodb集合

我正在寻找一种简单的方式来获得邮件标题中的信息,并在写入<to uri=""/>

<route> <from uri="jms:topic:BUS_IN" /> <to uri="mongodb:myDb?database=${header.someValue}&amp;collection=storyTeaser&amp;operation=save" /> </route>

非常感谢

回答

1

你可以添加第二个路由设置标题变量:

<route> 
     <from uri="jms:topic:BUS_IN" /> 
     <camel:setHeader headerName="CamelMongoDbDatabase"> 
      <camel:simple>testmydb</camel:simple> 
     </camel:setHeader> 
     <camel:setHeader headerName="CamelMongoDbCollection"> 
      <camel:simple>mycollection</camel:simple> 
     </camel:setHeader> 
     <to uri="jms:queue:mongodb.out"/> 
    </route> 

然后在fir的uri中添加参数“dynamicity” st route:

<route> 
     <from uri="jms:queue:mongodb.out" /> 
     <to uri="mongodb:myDb?database=new_test&amp;collection=old&amp;dynamicity=true&amp;operation=save"/> 
    </route>