Apache:使用日志组件后,Camel请求正在丢失

时间:2016-12-07 11:54:39

标签: java apache-camel esb

每当我在路线中使用.log()时,下一条路线都会收到空身。 在开头添加.streamCaching()时,这已经解决,但这是我将永远必须使用的方式。 streamCaching还会对其他组件产生任何其他影响吗? 要拨打我正在使用ProducerTemplates.asyncSendBody()

的路线

1 个答案:

答案 0 :(得分:1)

来自Camel's official documentation

  

虽然出于性能原因,流类型(例如StreamSourceInputStreamReader)通常用于消息传递,但它们也有一个重要的缺点:它们只能被读取一旦即可。为了能够多次处理消息内容,需要缓存流。

所以,你的问题在于,对.log()的调用实际上会读取流,如果没有缓存,那么后续读取将导致没有数据返回。