java – Camel CBRs和POJO属性检查
发布时间:2020-12-15 08:49:53 所属栏目:Java 来源:网络整理
导读:我有一个路由Order实例的Camel路由: from("direct:start") .choice() .when(order.getProduct() == Product.Widget) .to("direct:widgets") .when(order.getProduct() == Product.Fizz) .to("direct:fizzes") .otherwise() .to("direct:allOtherProducts");
我有一个路由Order实例的Camel路由:
from("direct:start") .choice() .when(order.getProduct() == Product.Widget) .to("direct:widgets") .when(order.getProduct() == Product.Fizz) .to("direct:fizzes") .otherwise() .to("direct:allOtherProducts"); 因此,如果特定订单是Widget的订单,则需要将其路由到direct:小部件等. 当()方法时,我会扼杀每个内容.我所拥有的不是合法的Camel DSL语法,用于说明我想要完成的任务. 所以我问:我在每个(…)方法中放入什么来完成我正在寻找的路由类型?提前致谢! 解决方法
你应该将order.getProduct()的值放在标题中并像这样使用它::
from("direct:start") .choice() .when(header("product").isEqualTo(Product.Widget)) .to("direct:widgets") .when(header("product").isEqualTo(Product.Fizz)) .to("direct:fizzes") .otherwise() .to("direct:allOtherProducts"); 编辑: 您可以使用一个进程(即:在DSL中): <route id="foo"> <from uri="direct:start"/> <process ref="beanProcessor" /> <choice> <when> ... </when> <when> ... </when> <otherwise> ... </otherwise> </choice> Bean声明: <bean id="beanProcessor" class="MyProcessor" /> 班级 : public class MyProcessorimplements Processor { @Override public void process(Exchange exchange) throws Exception { exchange.getIn().setHeader("headerName",yourOrderObject); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |