每当我在路线中使用.log()
时,下一条路线都会收到空身。
在开头添加.streamCaching()
时,这已经解决,但这是我将永远必须使用的方式。 streamCaching
还会对其他组件产生任何其他影响吗?
要拨打我正在使用ProducerTemplates.asyncSendBody()
答案 0 :(得分:1)
来自Camel's official documentation:
虽然出于性能原因,流类型(例如
StreamSource
,InputStream
和Reader
)通常用于消息传递,但它们也有一个重要的缺点:它们只能被读取一旦即可。为了能够多次处理消息内容,需要缓存流。
所以,你的问题在于,对.log()
的调用实际上会读取流,如果没有缓存,那么后续读取将导致没有数据返回。