【问题标题】:Unable to add Route in Apache Camel dynamically at Runtime无法在运行时动态添加 Apache Camel 中的路由
【发布时间】:2016-01-15 14:18:38
【问题描述】:

我想在运行时动态添加新的骆驼路线。也就是说,根据用户请求,我需要添加新路由,并且还需要开始使用新添加的路由中的数据,但我做不到。

import java.util.ArrayList;
import java.util.List;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.SpringRouteBuilder;
import org.apache.camel.model.RouteDefinition;
import org.springframework.stereotype.Component;
@Component
public class EndNodeConsumer extends SpringRouteBuilder {

    public List<String> routes_list = new ArrayList<String>();

    public EndNodeConsumer(){
        if(routes_list!=null && routes_list.size() == 0){
            routes_list.add("ddsi:EndNode1:0/Sensor.Msg?reliabilityKind=RELIABLE&Partition=EndNode");
            routes_list.add("ddsi:EndNode2:0/Sensor.Msg?reliabilityKind=RELIABLE&Partition=EndNode");           
        }
    }

    @Override   
    public void configure() throws Exception {  
        for(int i =0 ;i <routes_list.size(); i++){  
            System.out.println("inside configure "+i+" "+routes_list.get(i));
            from(routes_list.get(i))
            .unmarshal("cdr")
            .process(new Processor() {    
                public void process(Exchange e) {
                    System.out.println("DDS Consumer "+((Sensor.Msg) e.getIn().getBody()).sensorId);                    
                }                   
            }); 
        }
        List<RouteDefinition> str = getRouteCollection().getRoutes();
        for(int j = 0 ;j <str.size();j++){
            System.out.println("routes "+str.get(j));
        }

    }
}

根据请求,新路由将添加到数组列表“routes_list”中。然后将对方法“configure”进行函数调用。

当我通过调用 getRouteCollection().getRoutes() 看到骆驼 RouteCollection 时,我也能够在列表中看到新路由,但在向新路由发送消息时无法接收。 请您看一下,请提供您的意见

【问题讨论】:

    标签: java spring apache-camel data-distribution-service


    【解决方案1】:

    使用CamelContext 上的 API 在运行时添加路由。它有一个addRouteBuilder 等方法。但请检查它的 api。

    【讨论】:

      猜你喜欢
      • 2018-07-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多