骆驼豆参数绑定不起作用

Tuomas Toivonen:

我正在学习Apache Camel框架,尝试实现简单的bean参数绑定示例。

我有以下路线

from("timer://foo?delay=2000")
    .setBody(simple("hello"))
    .log("${body}")
    .transform(simple("<foo>${body}</foo>"))
    .log("${body}")
    .bean(DocumentProcessorBean.class, "process");

还有以下的春豆

@Component("documentProcessorBean")
public static class DocumentProcessorBean {

    public Document process(@Body Document doc, @Headers Map<String, Object> headers) {
        System.out.println(doc);
        System.out.println(headers);
        return doc;
    }
}

但是,参数绑定似乎不起作用,因为我正在获取没有内容的Document实例,如日志中所示

2018-04-03 18:14:39.354  INFO 7740 --- [1 - timer://foo] route1                                   : hello
2018-04-03 18:14:39.354  INFO 7740 --- [1 - timer://foo] route1                                   : <foo>hello</foo>
[#document: null]
{breadcrumbId=ID-DESKTOP-LI5P50P-1522768469501-0-6, firedTime=Tue Apr 03 18:14:39 EEST 2018}

我也对骆驼使用的“隐式”数据格式感到困惑。例如,使用simple始终进行转换是否会返回字符串?在路由中使用字符串,编组格式(例如xstream)或绑定类格式(POJO)有什么区别,甚至无关紧要?通常,在路线中需要在这些格式之间进行转换时,会出现哪些情况?最重要的是,为什么在此特定路由中的bean参数绑定无效?

克劳斯·易卜生:

您不能只是System.out.println一个Document实例而让它显示XML内容。您在日志中看到的内容是预期的,它可能只是显示内容Document: null或某些内容,但这并不意味着没有任何内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章