java - 如何从 Exchange 获取内容。In :Body object from a ProcessDefinition in Camel

标签 java apache-camel

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

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

所以问题是如何从流程链外部的 Exchange.getIn().getBody() 方法获取数据,以便为我的输出文件生成所需的文件名,最后一步,将 xml 写入这个文件?或者还有其他方法可以实现这一点吗?

这是我当前的路由构建器配置方法的流程链:

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

最诚挚的问候 节奏

最佳答案

文件组件从 header (如果存在)中获取文件名。因此,您只需使用所需的文件名向消息添加 header 即可。

header 应使用“CamelFileName”键,该键也是从 Exchange.FILE_NAME 定义的。

查看更多详细信息:http://camel.apache.org/file2

关于java - 如何从 Exchange 获取内容。In :Body object from a ProcessDefinition in Camel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7661379/

相关文章:

java - 组合框 CSS 代码

java - 如何使JFrame内JPanel内JLabel内的BufferedImage正确刷新?

java - 拆分后从 Camel 路由获取原始消息

apache-camel - log4j2 如何禁用 "date:"查找 - log4j 抛出异常

java - 另一个 Xpath 困境

java - 无法使用 Ansible 在远程主机中使用 Maven 进行打包

java - 如何在application.yml中定义bean?

xml - Camel 中的 IMAP 轮询到 GMAIL

java - 无法解决在 Java 中使用 Camel CDI 在 Wildfly 中执行 Grrovy 脚本的类问题

java - 套接字异常 : EACCESS (Permission denied)