我在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=CXML
或OCI
运行此程序时,我仅在输出中将routeId
设为OCI
。
您能否建议我如何在同一路线中为不同的transType选择设置不同的routeID?
我现在被困在这一段时间了。如果不是routeID
,我们可以为不同的选择分配一些唯一的ID吗?那么我们可以使事情更具体化吗?
答案 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();