Route, from ftp to a local file.
pchandler Dec 8, 2010 7:27 PMTo route from FTP to a local file should be simple (right off the web page). However, I am getting:
Exception:
No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.InputStream
Help any ideas on how to fix this issue?
The Camel Route:
<route> <from uri="ftp://username@host.domain.com/subdir/?password=MyPassword&binary=true&consumer.delay=1000&passiveMode=true&localWorkDirectory=temp"></from> <to uri="file://inbox"></to> </route>
Exception:
... 2010-12-08 18:57:10,004 [Camel thread 0: FtpComponent] TRACE - Polling directory: subdir 2010-12-08 18:57:10,302 [Camel thread 0: FtpComponent] DEBUG - Total 13 files to consume ... 2010-12-08 18:57:10,605 [Camel thread 0: FtpComponent] TRACE - Starting service: Producer[file://inbox] 2010-12-08 18:57:10,605 [Camel thread 0: FtpComponent] DEBUG - Starting producer: Producer[file://inbox] 2010-12-08 18:57:10,606 [Camel thread 0: FtpComponent] DEBUG - Adding to producer cache with key: Endpoint[file://inbox] for producer: Producer[file://inbox] 2010-12-08 18:57:10,607 [Camel thread 0: FtpComponent] TRACE - Processing Exchange[Message: GenericFile[PETER_20101208_225457Z.xml.gz]] 2010-12-08 18:57:10,608 [Camel thread 0: FtpComponent] TRACE - Converting org.apache.camel.component.file.remote.RemoteFile -> java.io.InputStream with value: GenericFile[PETER_20101208_225457Z.xml.gz] 2010-12-08 18:57:10,608 [Camel thread 0: FtpComponent] TRACE - Converting org.apache.camel.impl.DefaultMessage -> java.io.InputStream with value: Message: GenericFile[PETER_20101208_225457Z.xml.gz] 2010-12-08 18:57:10,608 [Camel thread 0: FtpComponent] TRACE - Building starting directory: inbox 2010-12-08 18:57:10,608 [Camel thread 0: FtpComponent] TRACE - About to write [inbox/a8b72b9c-22dd-4af6-a1ad-cdb6b6df5527] to [Endpoint[file://inbox]] from exchange [Exchange[Message: GenericFile[PETER_20101208_225457Z.xml.gz]]] 2010-12-08 18:57:10,608 [Camel thread 0: FtpComponent] TRACE - Converting org.apache.camel.component.file.remote.RemoteFile -> java.io.File with value: GenericFile[PETER_20101208_225457Z.xml.gz] 2010-12-08 18:57:10,608 [Camel thread 0: FtpComponent] TRACE - Converting org.apache.camel.impl.DefaultMessage -> java.io.File with value: Message: GenericFile[PETER_20101208_225457Z.xml.gz] 2010-12-08 18:57:10,610 [Camel thread 0: FtpComponent] TRACE - Converting org.apache.camel.component.file.remote.RemoteFile -> java.io.InputStream with value: GenericFile[PETER_20101208_225457Z.xml.gz] 2010-12-08 18:57:10,611 [Camel thread 0: FtpComponent] TRACE - to: Recording duration: 16 millis for exchange: Exchange[GenericFileMessage with file: GenericFile[PETER_20101208_225457Z.xml.gz]] 2010-12-08 18:57:10,611 [Camel thread 0: FtpComponent] TRACE - to: Recording duration: 16 millis for exchange: Exchange[GenericFileMessage with file: GenericFile[PETER_20101208_225457Z.xml.gz]] 2010-12-08 18:57:10,611 [Camel thread 0: FtpComponent] TRACE - Finding best suited exception policy for thrown exception org.apache.camel.NoTypeConversionAvailableException 2010-12-08 18:57:10,611 [Camel thread 0: FtpComponent] TRACE - Finding best suited exception policy for thrown exception org.apache.camel.InvalidPayloadException 2010-12-08 18:57:10,612 [Camel thread 0: FtpComponent] TRACE - Finding best suited exception policy for thrown exception org.apache.camel.component.file.GenericFileOperationFailedException 2010-12-08 18:57:10,612 [Camel thread 0: FtpComponent] TRACE - Found 0 candidates 2010-12-08 18:57:10,612 [Camel thread 0: FtpComponent] DEBUG - Failed delivery for exchangeId: 957d6fd0-0e2e-483c-afeb-beae0e61dc61. On delivery attempt: 0 caught: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: inbox/a8b72b9c-22dd-4af6-a1ad-cdb6b6df5527 2010-12-08 18:57:10,612 [Camel thread 0: FtpComponent] TRACE - Converting java.lang.Boolean -> java.lang.Object with value: false 2010-12-08 18:57:10,613 [Camel thread 0: FtpComponent] ERROR - Failed delivery for exchangeId: 957d6fd0-0e2e-483c-afeb-beae0e61dc61. Exhausted after delivery attempt: 1 caught: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: inbox/a8b72b9c-22dd-4af6-a1ad-cdb6b6df5527 org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: inbox/a8b72b9c-22dd-4af6-a1ad-cdb6b6df5527 at org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:211) at org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:195) at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:126) at org.apache.camel.component.file.GenericFileProducer.process(GenericFileProducer.java:57) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:258) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:137) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:103) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:106) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: GenericFile[PETER_20101208_225457Z.xml.gz] of type: org.apache.camel.component.file.remote.RemoteFile on: Message: GenericFile[PETER_20101208_225457Z.xml.gz]. Caused by: No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.InputStream with value GenericFile[PETER_20101208_225457Z.xml.gz]. Exchange[Message: GenericFile[PETER_20101208_225457Z.xml.gz]]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.InputStream with value GenericFile[PETER_20101208_225457Z.xml.gz]] at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:103) at org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:116) at org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:203) ... 34 more Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.InputStream with value GenericFile[PETER_20101208_225457Z.xml.gz] at org.apache.camel.impl.converter.DefaultTypeConverter.mandatoryConvertTo(DefaultTypeConverter.java:123) at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101) ... 36 more 2010-12-08 18:57:10,614 [Camel thread 0: FtpComponent] TRACE - Converting java.lang.Boolean -> java.lang.Object with value: false 2010-12-08 18:57:10,614 [Camel thread 0: FtpComponent] DEBUG - This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with file: GenericFile[PETER_20101208_225457Z.xml.gz]] 2010-12-08 18:57:10,614 [Camel thread 0: FtpComponent] DEBUG - Done processing file: GenericFile[PETER_20101208_225457Z.xml.gz] using exchange: Exchange[GenericFileMessage with file: GenericFile[PETER_20101208_225457Z.xml.gz]] 2010-12-08 18:57:10,614 [Camel thread 0: FtpComponent] ERROR - Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - Cannot store file: inbox/a8b72b9c-22dd-4af6-a1ad-cdb6b6df5527] org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: inbox/a8b72b9c-22dd-4af6-a1ad-cdb6b6df5527 at org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:211) at org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:195) at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:126) at org.apache.camel.component.file.GenericFileProducer.process(GenericFileProducer.java:57) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:258) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:137) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:103) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:106) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: GenericFile[PETER_20101208_225457Z.xml.gz] of type: org.apache.camel.component.file.remote.RemoteFile on: Message: GenericFile[PETER_20101208_225457Z.xml.gz]. Caused by: No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.InputStream with value GenericFile[PETER_20101208_225457Z.xml.gz]. Exchange[Message: GenericFile[PETER_20101208_225457Z.xml.gz]]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.InputStream with value GenericFile[PETER_20101208_225457Z.xml.gz]] at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:103) at org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:116) at org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:203) ... 34 more Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.InputStream with value GenericFile[PETER_20101208_225457Z.xml.gz] at org.apache.camel.impl.converter.DefaultTypeConverter.mandatoryConvertTo(DefaultTypeConverter.java:123) at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101) ... 36 more