我正在阅读有关Apache Camel的一些文档,但无法理解Apache Camel中setHeader()
的作用。它是否为from
中指定的文件添加标头。并且还建议了一些我可以获得Apache Camel教程的链接。
答案 0 :(得分:5)
不,它不会向文件添加任何内容。 .setHeader()
创建当前路由中存在的标头。您可以创建类似.setHeader("myHeader", "myHeaderValue")
的标头。通过.getHeader("myHeader")
使用标题在路线期间访问动态属性。使用更长久的属性使用交换属性。
答案 1 :(得分:2)
setHeader
消耗的文件(消息)(from
)未将标头设置为文件。
Camel File2 检查邮件标题。这列出了File端点生成(to)和使用(from)所支持的所有消息头。对于使用的文件,您可以访问消息中的(getHeader
)支持的标头。但是,覆盖这些值并不会覆盖文件的元数据。
Apache Camel中的标题和属性可以互换使用,以在单个route
中的进程之间传递值,但是当您想要跨越不同的路由时,行为会有所不同。标头可能在端点处丢失,因为它们通常代表某些组件特定的东西。浏览文档以进一步了解。
Camel的最佳教程 - Apache Camel Books和Apache 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 文档的头部是关于文档的无序信息集合。
所有相同的概念:将元数据与有效负载一起存储。