使用javaDSL从camel路由中的消息中获取头

时间:2015-02-23 14:58:43

标签: java routing apache-camel dead-letter

我需要将死信重定向到消息中标题定义的目录。

我试过了:

errorHandler(deadLetterChannel("direct:dead"));

from("direct:dead")
    .setHeader("CamelFileName", simple(
            new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) + ".msg"
    ))
.to("/deadLetter/" +    header("code1") + "/" +   
                        header("code2") + "/" + 
                        header("code3") + "/");

我得到的是这样的URI:deadLetter \ header {code1} \ header {code2} \ header {code3} \ TIMESTAMP.msg

有没有办法获得这些标题,以便我可以建立路线?

1 个答案:

答案 0 :(得分:0)

您可以在CamelFileName上添加所有信息:

errorHandler(deadLetterChannel("direct:dead"));

from("direct:dead").setHeader("CamelFileName", simple("${header.code1}/${header.code2}/${header.code3}/${date:now:yyyyMMdd_HHmmss}.msg").to("file:/deadLetter");

更多信息:http://camel.apache.org/simple.html