【问题标题】:How can I get content from Exchange.In:Body object from a ProcessDefinition in Camel如何从 Camel 中的 ProcessDefinition 获取 Exchange.In:Body 对象的内容
【发布时间】:2011-12-01 11:04:01
【问题描述】:

我正在使用 Apache Camel 在两个系统之间集成数据。我希望将生成的 xml 写入 xml 文件。我想将该文件的名称基于集成链启动时未知的一些数据。

当我完成第一个丰富步骤后,所需的数据位于 Exchange 对象中。

所以问题是我如何从流程链之外的 exchange.getIn().getBody() 方法中获取数据,以便为我的输出文件生成所需的文件名,并作为最后一步,将 xml 写入这个文件?还是有其他方法可以做到这一点?

这是我当前使用 routebuilders 配置方法的流程链:

from("test_main", "jetty:server")
.process(new PiProgramCommonProcessor())
.enrich("piProgrammeEnricher", new PiProgrammeEnricher())
// after this step I have the data available in exchange.in.body .to(freeMarkerXMLGenerator)
.to(xmlFileDestination) .end();

最好的问候 韵律

【问题讨论】:

    标签: java apache-camel


    【解决方案1】:

    文件组件从标题中获取文件名(如果存在)。因此,您可以使用所需的文件名在邮件中添加标题。

    标头应使用同样从 Exchange.FILE_NAME 定义的键“CamelFileName”。

    查看更多详情:http://camel.apache.org/file2

    【讨论】:

    • 好的,我已经让它工作了。现在解决将名称基于驻留在 exchange.in.body 对象中的某个值的问题
    • 您可以使用处理器来计算和设置标头。 camel.apache.org/processor
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多