有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我们可以为一个特定的路由选择不同的路由ID吗?

我在骆驼班有一条路线。对于不同的选择,我需要不同的routeIDs。即,当调用transtype=CXML时,routeId应显示为CXML&;调用transtype=OCIrouteId应显示为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) 个答案

  1. # 1 楼答案

    使用“子路线”,在每个选择中使用直接运输完成各种事情。然后,您可以在每个“子路由”上设置唯一的路由ID

    直接调用是最便宜的

    网站上的示例:

     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();