使用自定义方法进行Camel路由

时间:2015-02-05 12:40:35

标签: apache filter routing apache-camel esb

我试图根据三个不同的标准来路由对象。

我的问题是:

1)为什么如果我有ie路由,对象以随机的方式进入其中一个过滤器而不是线性?

2)如果这不起作用我应该怎么做(例子),如果我用"选择"和"当",我可以使用自定义方法进行路由吗?比如我在这个例子中使用过滤器

非常感谢

示例:

camelContext.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {                                  

    from("activemq:cfes.queue").filter().method(CustomCamelFilter.class, "methodOne")
        .to("file://c:/u01/tomcat_conf/folder1");               

    from("activemq:cfes.queue").filter().method(CustomCamelFilter.class, "methodTwo")
        .to("file://c:/u01/tomcat_conf/folder2");

    from("activemq:cfes.queue").filter().method(CustomCamelFilter.class, "methodThree")
        .to("file://c:/u01/tomcat_conf/folder3");

1 个答案:

答案 0 :(得分:0)

在这里使用.filter()模式是不正确的,当你确实应该使用.choice()模式时,就像这样:

.choice()
    .when(method(MyBean.class, "methodOne")).log("HELLO1")
    .when(method(MyBean.class, "methodTwo")).log("HELLO2")
    .when(method(MyBean.class, "methodThree")).log("HELLO3")
    .otherwise().log("OOPS!")
.end()