【问题标题】:Camel - Body becomes empty after logging骆驼 - 伐木后身体变空
【发布时间】:2019-02-07 19:21:33
【问题描述】:
看起来像一个奇怪的问题或文档丢失
案例 1
from("direct:ROUTE1").to("someAPI").to("direct:ROUTE2");
from("direct:ROUTE2").log("${body}"); // BODY is printing
案例 2
from("direct:ROUTE1").to("someAPI").to("direct:ROUTE2").log("${body}");
from("direct:ROUTE2").log("${body}"); // BODY is empty
添加日志会清除交换体吗??
【问题讨论】:
标签:
java
apache-camel
esb
【解决方案1】:
正如@Spara 和@Claus 所建议的那样,省去了如何启用流缓存的麻烦。
下面是示例代码:
使用 Java DSL 实现单路由
from("direct:ROUTER1")
.streamCaching()
.to("direct:ROUTER2");
将 Spring DSL 用于单路由
<route streamCache="true">
<from uri="direct:ROUTER1"/>
<to uri="direct:ROUTER2"/>
</route>
对于使用 JAVA DSL 的全局和每个路由范围
context.setStreamCache(true);
from("direct:ROUTER1")
.to("direct:ROUTER2");
对于使用 Spring DSL 的全局和每个路由范围
<route streamCache="true">
<from uri="direct:ROUTER1"/>
<to uri="direct:ROUTER2"/>
</route>
备注链接:Camel Stream Caching
why stream caching