骆驼 - Body 记录后变为空

Camel - Body becomes empty after logging

看起来像是一个奇怪的问题或文档丢失

案例一

from("direct:ROUTE1").to("someAPI").to("direct:ROUTE2");
from("direct:ROUTE2").log("${body}");  // BODY is printing

案例二

from("direct:ROUTE1").to("someAPI").to("direct:ROUTE2").log("${body}");
from("direct:ROUTE2").log("${body}");  // BODY is empty

添加日志是否清除交换body??

正如@Spara 和@Claus 所建议的那样,为了省去如何启用流缓存的麻烦。

下面是示例代码:

Using Java DSL for Single route

from("direct:ROUTER1")
    .streamCaching()
    .to("direct:ROUTER2");

Using Spring DSL for Single route

<route streamCache="true">
   <from uri="direct:ROUTER1"/>
   <to uri="direct:ROUTER2"/>
</route>

For global and per route scope using JAVA DSL

   context.setStreamCache(true);

      from("direct:ROUTER1")
         .to("direct:ROUTER2");

For global and per route scope using Spring DSL

<route streamCache="true">
   <from uri="direct:ROUTER1"/>
   <to uri="direct:ROUTER2"/>
</route>

备注link:Camel Stream Caching why stream caching