setHeader()如何在Apache驼峰中运行

问题描述 投票:2回答:3

我正在阅读有关Apache Camel的一些文档,但无法理解setHeader()在Apache Camel中的作用。它是否为from中指定的文件添加标头。并建议一些链接,我可以获得有关Apache Camel的教程。

java apache-camel
3个回答
5
投票

不,它不会向文件添加任何内容。 .setHeader()创建一个存在于当前路线中的标题。您可以创建像.setHeader("myHeader", "myHeaderValue")这样的标题。通过.getHeader("myHeader")使用标题在您的路线期间访问动态属性为了更持久的属性使用交换属性。


2
投票

setHeader消耗的文件(消息)(from)不会将标头设置为文件。

Camel File2检查消息标题。这列出了File端点生成(to)和使用(from)所支持的所有消息头。对于使用的文件,您可以访问消息中的(getHeader)支持的标头。但是,覆盖这些值并不会覆盖文件的元数据。

Apache Camel中的标题和属性可以互换使用,以在单个route中的进程之间传递值,但是当您想要跨越不同的路由时,行为会有所不同。标头可能在端点处丢失,因为它们通常代表某些组件特定的东西。浏览文档以进一步了解。

Camel的最佳教程 - Apache Camel BooksApache Cammel Documentation


1
投票

请记住,在Camel中,您正在使用Exchange对象,该对象具有标题,属性,body.in,body.out等。

因此,当您编写from(“file:...”)时,您的文件内容将被放入您的Exchange的body.in,然后您可以使用exchange.getIn().getBody()获取您的文件内容,例如在处理器中。

标头是您的Exchange的一部分,因此当您编写:exchange.setHeader(“headerExample”,”MyHeader”)时,它将添加现有Exchange标头的标头。

© www.soinside.com 2019 - 2024. All rights reserved.