Java 如何从Camel中的ProcessDefinition获取Exchange.In:Body对象中的内容

Java 如何从Camel中的ProcessDefinition获取Exchange.In:Body对象中的内容,java,apache-camel,Java,Apache Camel,我正在使用ApacheCamel在两个系统之间集成数据。我希望将生成的xml写入xml文件。我希望该文件的名称基于一些数据,这些数据在集成链启动时是未知的 完成第一步后,所需的数据将在Exchange对象中 因此,问题是如何从进程链之外的exchange.getIn().getBody()方法获取数据,以便为输出文件生成所需的文件名,并作为最后一步,将xml写入该文件?还是有其他方法来实现这一点 以下是routebuilders配置方法的当前流程链: 从(“测试主”、“码头:服务器”) .pr

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

完成第一步后,所需的数据将在Exchange对象中

因此,问题是如何从进程链之外的exchange.getIn().getBody()方法获取数据,以便为输出文件生成所需的文件名,并作为最后一步,将xml写入该文件?还是有其他方法来实现这一点

以下是routebuilders配置方法的当前流程链:


从(“测试主”、“码头:服务器”)
.process(新的PiProgramCommonProcessor())
.rich(“piProgrammeEnricher”,新的piProgrammeEnricher())
//完成此步骤后,我在exchange.in.body中获得了可用的数据 .to(freeMarkerXMLGenerator)
.to(xmlFileDestination) .end();

致意
RythmiC

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

标头应使用键“CamelFileName”,该键也是从Exchange.FILE\u NAME中定义的


有关更多详细信息,请访问:

好的,我已经让它发挥作用了。现在来看看基于exchange.in.body对象中的某个值命名的问题,您可以使用处理器来计算和设置头。