2014-11-07 3 views
0

Их аналогичная публикация, претендующая на получение ответа, но я все равно получаю сообщение об ошибке после того, как поставил step -> stepwise = false на моем верблюжьем маршруте , -> Исключениеorg.apache.camel.component.file.GenericFileOperationFailedException - Невозможно перечислить каталог:

14:35:33,649 WARN [org.apache.camel.component.file.remote.RemoteFilePollingConsumerPollStrategy] (Camel (camel-1) thread #13 - sftp://myftp:22) Trying to recover by discon 
necting from remote server forcing a re-connect at next poll: sftp://[email protected]:22 
14:35:33,654 WARN [org.apache.camel.component.file.remote.SftpConsumer] (Camel (camel-1) thread #13 - sftp://myftp:22) Consumer Consumer[sftp://myftp:22?delay 
=1h&delete=true&doneFileName=done&password=xxxxxx&sortBy=ignoreCase%3Afile%3Aname&stepwise=false&username=myUser] failed polling endpoint: Endpoint[sftp://myftp:22?delay=1h 
&delete=true&doneFileName=done&password=xxxxxx&sortBy=ignoreCase%3Afile%3Aname&stepwise=false&username=myUser]. Will try again at next poll. Caused by: [org.apache.camel.component.file. 
GenericFileOperationFailedException - Cannot list directory: .]: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot list directory: . 
     at org.apache.camel.component.file.remote.SftpOperations.listFiles(SftpOperations.java:583) [camel-ftp-2.13.2.jar:2.13.2] 
     at org.apache.camel.component.file.remote.SftpConsumer.doPollDirectory(SftpConsumer.java:90) [camel-ftp-2.13.2.jar:2.13.2] 
     at org.apache.camel.component.file.remote.SftpConsumer.pollDirectory(SftpConsumer.java:52) [camel-ftp-2.13.2.jar:2.13.2] 
     at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:119) [camel-core-2.13.2.jar:2.13.2] 
     at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187) [camel-core-2.13.2.jar:2.13.2] 
     at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114) [camel-core-2.13.2.jar:2.13.2] 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_65] 
     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [rt.jar:1.7.0_65] 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [rt.jar:1.7.0_65] 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [rt.jar:1.7.0_65] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_65] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_65] 
     at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_65] 
Caused by: 4: 
     at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1660) [jsch-0.1.49.jar:] 
     at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1466) [jsch-0.1.49.jar:] 
     at org.apache.camel.component.file.remote.SftpOperations.listFiles(SftpOperations.java:574) [camel-ftp-2.13.2.jar:2.13.2] 
     ... 12 more 
Caused by: java.io.IOException: Pipe closed 
     at java.io.PipedInputStream.read(PipedInputStream.java:308) [rt.jar:1.7.0_65] 
     at com.jcraft.jsch.Channel$MyPipedInputStream.updateReadSide(Channel.java:344) [jsch-0.1.49.jar:] 
     at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1483) [jsch-0.1.49.jar:] 
     ... 14 more 

вот мой маршрут ->

sftp://myftp:22?delay 
=1h&delete=true&doneFileName=done&password=xxxxxx&sortBy=ignoreCase%3Afile%3Aname&stepwise=false&username=myUser 
+0

Похоже, что ftp-сервер не поддерживает файл списка в домашнем каталоге. Можете ли вы проверить его дважды? –

+0

я использовал FileZilla и подключение .. здесь выход -> Статус: \t Получение списка каталогов ... Команда: PWD \t Ответ: \t Текущий каталог: "/" Команда: \t Ls Статус: каталог \t Листинг/ Статус: \t Список каталогов успешно – user301693

+0

Также используется командная строка с использованием linux -> sftp [email protected] -> после входа в систему Я выпустил команду -> ls -> и не возвратил никаких ошибок. Код верблюда работает в JBoss, который работает в системе на основе debian. и sftp-сервер - это Windows-машина. Это повлияет на что-нибудь? – user301693

ответ

0

Да, есть java.io.IOException: Труба закрыта. Я только что проверил код camel-ftp, у него есть код для проверки соединения, но трудно узнать, будет ли соединение еще открыто, если мы не отправим несколько байтов в сокет сервера.

Решение может заставить FTP-клиента отправить какое-либо сообщение ping, чтобы проверить, все ли соединение открыто.

Если вы хотите установить очень длительную задержку для FTP-вытягивать, работа вокруг пути является установка Отключите опции, чтобы быть правдой, чтобы заставить FTP конечные перезапустить новое соединение, когда он вытащить каталог снова с FTP-сервера.

Я только что создал a JIRA для этого.

+0

Я заметил, что если вы установите delay = 500, который является значением по умолчанию, а не 1h, вы не получите исключения. Я думаю, что это имеет какое-то отношение к постоянному соединению, поскольку интервал настолько частый, и соединение остается открытым. – user301693

+0

похоже, что установка маршрута на «разъединение» заставляет маршрут генерировать исключение. – user301693

Смежные вопросы