0

我有一个非常简单的路由,它获取一个 URL 并使用 Camel HTTP4 组件打印内容:

from("timer://foo?fixedRate=true&delay=0&period=10000")
    .to("http4://www.google.com")
    .process(e -> System.out.println("Out body: " + e.getOut().getBody()));

请注意,我使用 out.body 是因为,如Camel 文档中所述:

Camel 会将来自外部服务器的 HTTP 响应存储在 OUT 正文中。IN 消息中的所有标头都将复制到 OUT 消息中,因此在路由期间会保留标头。

但我从OUT(正文和标题)获得空值。仅在IN消息中填写所有内容。

我错过了什么还是一个错误?

4

2 回答 2

0
于 2017-08-18T06:30:50.913 回答
0

在 Camel 中,路由由节点组成。每个节点都接受交易所。Exchange 有一条 IN 和 OUT 消息。因此,在您的情况下,带有 http4 组件的节点采用了名为 google.com 的 Exchange,并将正文和标头写入 OUT 消息。接下来,节点与您的处理器进行交换。现在 IN 消息具有来自前一个节点(http4)的响应,但是您打印的是空的 OUT!所以 IN 和 OUT 消息是每个节点而不是每个路由!

于 2017-08-18T20:19:39.793 回答