2017-11-14 2 views
0

Ich frage mich, ob es möglich ist, eine Datei von einem FTP-Server in ein lokales Verzeichnis zu verschieben oder herunterzuladen, indem man die apache camel endpoints-Eigenschaften verwendet?Können wir mit apache camel endpoints eine Datei von einem FTP-Server in ein lokales Verzeichnis verschieben?

Ich habe dieses Thema bereits durchsucht und konnte nichts finden, was mir helfen könnte. Außerdem bin ich mir seiner Machbarkeit nicht sicher.

Die Endpunkte URI =

sftp://[email protected]/outgoingFolder?password=*****&throwExceptionOnConnectFailed=true&maximumReconnectAttempts=0&stepwise=false&fastExistsCheck=true&disconnect=true&consumer.delay=300000&passiveMode=true

I used "& move = C: \ Ordner" als Eigenschaft, aber es hat nicht funktioniert und ich bekomme die folgenden Fehler

WARN - [SftpConsumer:213] Consumer Consumer[sftp://[email protected]/outgoingFolder?consumer.delay=300000&disconnect=true&fastExistsCheck=true&maximumReconnectAttempts=0&move=C%3A%5C%5Cfolders&passiveMode=true&password=xxxxxx&stepwise=false&throwExceptionOnConnectFailed=true] failed polling endpoint: Endpoint[sftp://[email protected]/outgoingFolder?consumer.delay=300000&disconnect=true&fastExistsCheck=true&maximumReconnectAttempts=0&move=C%3A%5C%5Cfolder&passiveMode=true&password=xxxxxx&stepwise=false&throwExceptionOnConnectFailed=true]. Will try again at next poll. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - Cannot list directory:outgoingFolder]org.apache.camel.component.file.GenericFileOperationFailedException: Cannot list directory: outgoingFolder  at org.apache.camel.component.file.remote.SftpOperations.listFiles(SftpOperations.java:617)  at org.apache.camel.component.file.remote.SftpConsumer.doPollDirectory(SftpConsumer.java:117)  at org.apache.camel.component.file.remote.SftpConsumer.pollDirectory(SftpConsumer.java:79)  at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:131)  at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)  at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)  at java.lang.Thread.run(Thread.java:745)Caused by: 4:  at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2208)  at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2215)  at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1565)  at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1526)  at org.apache.camel.component.file.remote.SftpOperations.listFiles(SftpOperations.java:608)  ... 12 more Caused by: java.io.IOException: inputstream is losed  at com.jcraft.jsch.ChannelSftp.fill(ChannelSftp.java:2884)  at com.jcraft.jsch.ChannelSftp.header(ChannelSftp.java:2908)  at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2189)  ... 16 more 

Antwort

1

Nein, & Die Option zum Verschieben ist für das Verschieben von Dateien im Bereich des Remote-Dateisystems vorgesehen.

Verwenden Sie stattdessen:

from("sftp://[email protected]/outgoingFolder?password=*****&throwExceptionOnConnectFailed=true&maximumReconnectAttempts=0&stepwise=false&fastExistsCheck=true&disconnect=true&consumer.delay=300000&passiveMode=true") 
.to("file:C:\\folder"); 
Verwandte Themen