camel http endpoint forming url dynamically

妖精的绣舞 提交于 2019-12-06 10:21:29

问题


Guys I am trying to use

{
from("direct:a").to (someUrl).processor(new Processor(){

   @Override
   public void process(Exchange arg0) throws Exception
   {
      // do something
   }

});


where someUrl is of the type http://xyz.com/{id}?test=<value1>&test1=<value2>
}

and this url will change on every request to the route.

What i have already tried. Passing params as headers and try to access in the route using the header("test") and using ${in.header.test} both doesn't seem to work.

any suggestions will be greatly helpful.


回答1:


See this FAQ about dynamic to endpoints in Camel: http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html




回答2:


From camel 2.16 you can do things like this -

from("direct:start")   
   .toD("${header.foo}");

Refer : http://camel.apache.org/message-endpoint.html




回答3:


You can use camel property place holder

http://camel.apache.org/using-propertyplaceholder.html

<camelContext trace="false" xmlns="http://camel.apache.org/schema/spring">
    <propertyPlaceholder location="config/AuditJMSConfig.properties" id="properties" />
    <route id="crudRoute">
        <from uri="activeMQ:queue:{{speedwing.activemq.auditqueue}}/>
    </route>                                                                                    where speedwing.activemq.auditqueue is the property name defined in the peroperties file.

you can use the same for <to uri="" also



来源:https://stackoverflow.com/questions/15071934/camel-http-endpoint-forming-url-dynamically

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!