我们可以针对特定路线使用不同的routeID进行多种选择吗?

时间:2015-04-05 08:02:35

标签: java rest apache-camel activemq integration

我在Camel类中有一个路由。我需要不同的routeIDs来进行不同的选择。即调用transtype=CXML时,routeId应显示为CXML&调用transtype=OCI时,routeId应显示为OCI

我在使用不同的选择。

例如

from(IntegrationConstants.JMSQUEUE)
    .process(routeHeaderProcessor)  
    .choice()
    .when(transtype=CXML) 
    .then(...........)
    .routeId(CXML)
    .when()
    .when(transtype=OCI) 
    .then(...........)
    .routeId(OCI)

但是,当我使用transType=CXMLOCI运行此程序时,我仅在输出中将routeId设为OCI

您能否建议我如何在同一路线中为不同的transType选择设置不同的routeID?

我现在被困在这一段时间了。如果不是routeID,我们可以为不同的选择分配一些唯一的ID吗?那么我们可以使事情更具体化吗?

1 个答案:

答案 0 :(得分:0)

使用直接传输的“子路径”来完成每个选项中的各种操作。然后,您可以在每个“子路径”上设置唯一的routeIds。

直接调用就像它一样便宜。

网站示例:

 from("direct:a")
            .choice()
                .when(header("foo").isEqualTo("bar"))
                    .to("direct:b")
                .when(header("foo").isEqualTo("cheese"))
                    .to("direct:c")
                .otherwise()
                    .to("direct:d");
    }


  from("direct:b")
    .routeId("b")
    .doWhateverHere();

  from("direct:c")
    .routeId("c")
    .doWhateverHere();

  from("direct:d")
    .routeId("d")
    .doWhateverHere();