使用自定义方法的骆驼路由
Camel routing with custom method
我正在尝试根据三个不同的标准来路由对象。
我的问题是:
1) 为什么如果我有即路由对象以随机方式而不是线性方式进入过滤器之一?
2)这个不行怎么办(例子),如果用"choice"和"when"做的话,能不能用自定义的方法来路由?就像我在这个例子中使用过滤器
非常感谢
示例显示:
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");
这里使用 .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()
我正在尝试根据三个不同的标准来路由对象。
我的问题是:
1) 为什么如果我有即路由对象以随机方式而不是线性方式进入过滤器之一?
2)这个不行怎么办(例子),如果用"choice"和"when"做的话,能不能用自定义的方法来路由?就像我在这个例子中使用过滤器
非常感谢
示例显示:
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");
这里使用 .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()