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

时间:2016-11-16 03:00:36

标签: java apache-camel

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

4 个答案:

答案 0 :(得分:5)

不,它不会向文件添加任何内容。 .setHeader()创建当前路由中存在的标头。您可以创建类似.setHeader("myHeader", "myHeaderValue")的标头。通过.getHeader("myHeader")使用标题在路线期间访问动态属性。使用更长久的属性使用交换属性。

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

Message.setHeader(String name, Object value)

<块引用>

在消息上设置标题

查看 Return Address of the Enterprise Integration Patterns (EIP) 我们发现:

<块引用>

一个返回地址被放在消息的标题中,因为它不是正在传输的数据的一部分。

我们也可以看看RFC2045, 3. MIME Header Fields

<块引用>

MIME 定义了许多新的 RFC 822 标头字段,用于描述 MIME 实体的内容。

我们甚至可以看看RFC1866 – Hypertext Markup Language - 2.0, 5.2. Head: HEAD:

<块引用>

HTML 文档的头部是关于文档的无序信息集合。

所有相同的概念:将元数据与有效负载一起存储。