2017-06-05 59 views
0

爪哇 - Apache的骆驼2.17 JAVA DSL骆驼的Java DSL通bean方法的返回值到头

我的路线过程中的数据并返回其加工的日期,我想通过从myBean.processData返回日志List<LocalDate>和设置头。

下面是我的代码

from("route1") 
.bean("myBean","processData") 
.log("how do i log the response of processData return") 
. setHeader("processDataReturnValue") // how can pass processData return 

值到头?

回答

2

下面的代码是你在找什么:

from("route1") 
    .bean("myBean","processData") 
    .log("***** processData return value: ${body.toString()} *****") 
    .setHeader("myHeader", body()); 

从 “骆驼在行动” CH。 4.使用豆骆驼:

“在运行时,骆驼交换路由,并在路线的特定点,到达BeanProcessor的BeanProcessor然后处理交换,执行这些常规步骤:

  1. 中查找在注册表中的豆
  2. 选择来调用豆
  3. 绑定到所选择的方法的参数(例如该方法中,利用作为参数的输入消息的主体;该覆盖详见4.5节)
  4. 调用该方法
  5. 把手发生(从bean抛出的异常将被放在骆驼换取进一步的错误处理设置)作为对身体
  6. 设置方法的答复(如果有的话)的任何调用错误

    @Component 
    public class MyBean { 
    
        public List<LocalDate> processData(Exchange exchange) { 
         return Lists.newArrayList(LocalDate.now(), 
            LocalDate.now().minusYears(1L)); 
        } 
    } 
    

    PS:在骆驼交换输出消息

我已经采用为myBean类似测试的路线我会考虑隐藏日志记录,在处理器中设置头文件和实际的bean调用。