почему файл Apache Camel на sftp не работает - PullRequest
0 голосов
/ 24 ноября 2018

Я новичок в Верблюд.Я прочитал основы и сумел сделать простой маршрут от файла к файлу.Когда я пытался из файла в sftp.Не удалось.

Для тестирования у меня Windows 10 в качестве хост-ОС и Mint Linux в качестве гостевой ОС.Я могу получить доступ от win к linux с помощью клиента sftp.Поэтому у меня нет проблем с доступом между хостом и гостем.Я попробовал следующий код: -

 public class App 
    {
        public static void main(String[]args) throws Exception {
            CamelContext camelContext = new DefaultCamelContext();
            try {
                camelContext.addRoutes(new FtpRouteBuilder());
                camelContext.start();
                Thread.sleep(200000);
                // do other stuff...
            }catch (Exception e){
                System.out.printf("ex: "+e.getMessage());
            }
            finally {
                camelContext.stop();
            }
        }
    }


    public class FtpRouteBuilder extends RouteBuilder {
        @Override
        public void configure() throws Exception {
            try{
                from("file:c:/temp/input/")
                        .to("sftp://sftpuser@192.168.10.54/?password=dev&passiveMode=true");
            }catch (Exception ex){
                System.out.printf("ex: "+ex.getMessage());
            }
        }
    }

Когда я попробовал этот код.Я получил следующее исключение: -

Не удалось создать маршрут route1 в: >>> To [sftp: //sftpuser@192.168.10.54/? Password = dev & passiveMode = true] <<< в маршруте: Route (route1) [[From [file: c: / temp / input /]] -> [To [sftp: // sftp ... из-за сбоя при обработке конечной точки: sftp: //sftpuser@192.168.10.54/? passiveMode = true & password = dev из-за: Не найден компонент со схемой: sftp18 / 11/24 17:50:30 INFO impl.DefaultCamelContext: Apache Camel 2.15.1 (CamelContext: camel-1) время безотказной работы 0,296 секунды

Что не так и как это исправить?

1 Ответ

0 голосов
/ 24 ноября 2018

Спасибо ernest_k за указание на отсутствующую библиотеку.Я добавил: -

<dependency>
   <groupId>org.apache.camel</groupId>
   <artifactId>camel-ftp</artifactId>
   <version>2.15.1</version>
</dependency>

public class FtpRouteBuilder extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        try{
            from("file:c:/temp/input/")
                    ..streamCaching()
                    .to("sftp://sftpuser@192.168.10.54:/sftpuser/?password=dev");
        }catch (Exception ex){
            System.out.printf("ex: "+ex.getMessage());
        }
    }
}

Это исправлено и главное отметить, что URI sftp.Оно работает.

...