Exchange.getIn()。getBody()在第二次调用时返回camel中的空字符串

我有2个相同的电话:

String msg1 = exchange.getIn().getBody(String.class); String msg2 = exchange.getIn().getBody(String.class); 

在msg1中,我得到了正确的期望值,但msg2是一个空字符串。 我没有设置Out消息,所以交换In消息应该仍然完好无损。 请解释为什么会这样。

骆驼路线:

     Hello World ${header.firedTime}          

处理器仅包含上面的2个语句。 route1中的处理是正确的,但是在route2中我得到了描述的行为:第一次调用 – 有效字符串,第二次调用 – 空字符串。 所以我想也许它与HttpMessage转换有关。

来自http://camel.apache.org/jetty.html

Jetty是基于流的,这意味着它接收的输入作为流提交给Camel。 这意味着您只能读取一次流的内容。

只需转换String中的输入,然后再使用它两次或更多次