骆驼:将消息转发到动态目标(从数据库)

问题描述 投票:0回答:3

我在我的应用中使用骆驼2.8.4。我的应用程序将从队列中接收请求,然后该请求将由验证程序进行验证。根据消息的内容,验证器会将请求转发到不同的目的地。验证器将是一个POJO bean。目的地将从数据库获取(这是必须的)。我更喜欢对camelContext使用spring dsl。

1. I dont know how to write the validator to forward req to destinations.
2. Can we use something similar like this 
    <to uri='method=getURI() bean='Validator''> in camelContext

<camelContext>
       <route id="route-1">
          <from uri="mq:queue:QUEUE"/>
          <bean ref="Validator" method="validate"/>
               <!--i would be great if we can use <to uri="dynamicURI-from-database"> here  -->
       </route> 
</camelContext>

Class Validator{
    public void validate(String req){
     if (...)
         //get uri1 from database 
         String uri1=getURI(..);
         //forward req to uri1
           ...........
     else 
         //get uri2 from database 
          String uri2=getURI(...);
         //forward req to uri2
           ...........

    }

   public String getURI(..){
        ......
      return uri;
    }

}

spring validation apache-camel message
3个回答
2
投票
类似:

process(new Procesor() public void process(Exchange exchange){ exchange.setHeader("myURI",someURI); });

以及在to子句中

<to uri="${header.myURI}"/>

1
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.