通过谷歌搜索和搜索Camel文档,我还没有找到一种方法在Java DSL中的Camel多播语句中启动一个块。
例如,我想象的是这样的:
from("direct:dummy")
.multicast()
.begin().setHeader("A","toto").process(doSomething).end()
.begin().setHeader("A","titi").process(doSomethingElse).end()
;
假设的“begin()”将开始一个块。有这样的结构吗?有没有其他方法可以做这样的事情?
我现在使用的替代方法是在每个块中定义一个“直接”,但在某些情况下(特别是设置一个标头),这会使代码更难阅读。
在我的例子中,替代方案如下:
from("direct:dummy")
.multicast()
.to("direct:dummy.toto")
.to("direct:dummy.titi")
;
from("direct:dummy.toto")
.setHeader("A","toto")
.process(doSomething)
;
from("direct:dummy:titi")
.setHeader("A","titi")
.process(doSomethingElse)
;
答案 0 :(得分:3)
使用.pipeline()而不是.begin()作为块