Apache camel 骆驼ftp间歇性问题

Apache camel 骆驼ftp间歇性问题,apache-camel,Apache Camel,我正在使用camel ftp组件将文件上载到服务器。我随机得到下面的异常,ftp突然停止,这可能是什么问题。感谢你的指点。 我使用的camel版本是2.10.1 |Caused by: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: 8000211d-5f40-4bac-920a-a2e5f2575870.gpg | at org.apache.camel.comp

我正在使用camel ftp组件将文件上载到服务器。我随机得到下面的异常,ftp突然停止,这可能是什么问题。感谢你的指点。 我使用的camel版本是2.10.1

|Caused by: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: 8000211d-5f40-4bac-920a-a2e5f2575870.gpg
|   at org.apache.camel.component.file.remote.SftpOperations.doStoreFile(SftpOperations.java:716)
|   at org.apache.camel.component.file.remote.SftpOperations.storeFile(SftpOperations.java:649)
|   at org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:249)
|   at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:151)
|   at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:49)
|   at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:120)
|   at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:292)
|   at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:115)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
|   at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
|   at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:81)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
|   at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
|   at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
|   at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)
|   at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:120)
|   at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:292)
|   at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:115)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
|   at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
|   at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:81)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
|   at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
|   at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
|   at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
|   at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)
|   at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
|   at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
|   at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
|   at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
|   at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
|   at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
|   at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
|   at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
|   at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:360)
|   at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:331)
|   at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:227)
|   at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:331)
|   at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:186)
|   at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:115)
|   at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:119)
|   ... 59 more
|Caused by: 4: java.io.IOException: Pipe closed
|   at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:500)
|   at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:454)
|   at org.apache.camel.component.file.remote.SftpOperations.doStoreFile(SftpOperations.java:701)
|   ... 180 more
|Caused by: java.io.IOException: Pipe closed
|   at java.io.PipedInputStream.read(PipedInputStream.java:291)
|   at com.jcraft.jsch.Channel$MyPipedInputStream.updateReadSide(Channel.java:344)
|   at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:466)

由于您提到您有时能够成功地执行该操作,因此可能不存在权限问题。不确定是否可能是存储空间问题等

我建议最好的方法是尝试通过您正在使用的版本的源代码进行调试。您将发现异常被抛出到
org.apache.camel.component.file.remote.FtpOperations
Java类中,IOException被包装在那里

不过,话虽如此,您也可以考虑使用全局错误处理程序。这里有一篇文章解释了如何:。这有助于理解到底哪里出了问题