I am a new Camel user.

I am trying to SFTP a file over to a local directory. I am using the
following code for the same:

         public static void main(String args[]) throws Exception {
                // create CamelContext
                CamelContext context = new DefaultCamelContext();

                // add our route to the CamelContext
                context.addRoutes(new RouteBuilder() {
                    @Override
                    public void configure() {
                        from("sftp://<account>@<sftp
server>/<dir>?password=<passwd>").to("file:data/outbox");
                    }
                });

                // start the route and let it do its work
                context.start();
                Thread.sleep(50000);

                // stop the CamelContext
                context.stop();
            }

When i check the output folder, I see that the file is downloaded. But when
the content is stopped, I see the following exception:

SEVERE: Caused by:
[org.apache.camel.component.file.GenericFileOperationFailedException -
Cannot retrieve file:  data/input/Set1.txt]
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot
retrieve file: data/input/Set1.txt
        at
org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:482)
        at
org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:448)
        at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
        at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
        at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
        at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
        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:180)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
        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:662)
Caused by: java.io.IOException: inputstream is closed
        at com.jcraft.jsch.ChannelSftp.fill(ChannelSftp.java:2325)
        at com.jcraft.jsch.ChannelSftp.header(ChannelSftp.java:2349)
        at com.jcraft.jsch.ChannelSftp.access$800(ChannelSftp.java:36)
        at com.jcraft.jsch.ChannelSftp$2.read(ChannelSftp.java:1092)
        at com.jcraft.jsch.ChannelSftp$2.read(ChannelSftp.java:1052)
        at org.apache.camel.util.IOHelper.copy(IOHelper.java:104)
        at org.apache.camel.util.IOHelper.copy(IOHelper.java:86)
        at org.apache.camel.util.IOHelper.copyAndCloseInput(IOHelper.java:111)
        at
org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:475)
        ... 14 more



Also one more thing observed is, the for smaller files in a few 100 KBs ..
the file is transferred and i see no exception. But for file in MBs, even if
the file is transferred .. I see the above exception.

May I get some help on why am I seeing such an exception. Is there some URI
option which I need to add to disconnect/not look for the file once the
transfer is complete?


Thanks in advance!

-- 
View this message in context: 
http://camel.465427.n5.nabble.com/SFTP-operation-raises-an-exception-but-the-file-is-transferred-tp3303905p3303905.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to