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中的输入,然后再使用它两次或更多次