Поврежденные файлы с компонентом Camel Ftp

Я использую apache camel, чтобы создать ftp-клиент для загрузки некоторых файлов в какой-то локальный каталог. Программа читает XML-файл, чтобы получить имя файла, который будет извлечен с ftp. Программа, похоже, работает, за исключением того, что загруженные файлы повреждены. Прямо сейчас я пытаюсь загрузить несколько файлов изображений, но получаемые мной файлы имеют размер 14,9 КБ и повреждены, сообщения об ошибке не отображаются.

Это мой код:

главный

    public void main() throws FileNotFoundException {
        BasicConfigurator.configure();
        RutaFtp routeBuilder = new RutaFtp();
        CamelContext ctx = new DefaultCamelContext();

        try {
            ctx.addRoutes(routeBuilder);
            ctx.start();
            Thread.sleep(10000);
            ctx.stop();
        }
        catch (Exception e) {
            e.printStackTrace();
        }

    }

верблюжий маршрут:

from("file:./?fileName=Datos.xml&noop=true")
        .split(xpath("//Datos/imagen/text()"))
        .setProperty("rutaArchivo", this.body())
        .log(LoggingLevel.INFO, "imagen: ${body}")
        .process(ExtraerNombre).to("direct:ftp").end(); 

        from("direct:ftp")  
        .pollEnrich("ftp://"+user+"@"+ftp+"/?password="+password+"&recursive=true&passiveMode=true&fileName=${body}&delete="+borrado+"")
        .to("file:C:/outputFolder?flatten=true").end();
    }

Я пробовал использовать параметр streamDownload, но это препятствует загрузке файлов (я не знаю почему)

.pollEnrich("ftp://"+user+"@"+ftp+"/?password="+password+"&recursive=true&passiveMode=true&streamDownload=true&fileName=${body}&delete="+borrado+"")

журнал консоли:

Заранее спасибо.

Загрузите файл изображения в двоичном режиме


person juan jose perez hernandez    schedule 09.04.2018    source источник


Ответы (1)


По умолчанию Camel FTP загружает файл в режиме ASCII.

Добавьте binary=true в свой ftp-маршрут, чтобы переключиться из режима ASCII в двоичный режим

ИНФОРМАЦИЯ | Apache Camel 2.15.1.redhat-621084 (CamelContext: camel-1) запускается 0 [основная] ИНФОРМАЦИЯ org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.15.1.redhat-621084 (CamelContext: camel-1) является стартовая информация | JMX включен 10 [main] INFO org.apache.camel.management.ManagedManagementStrategy - JMX включен INFO | Загружено 185 преобразователей типов 208 [main] INFO org.apache.camel.impl.converter.DefaultTypeConverter - Загружено 185 преобразователей типов INFO | AllowUseOriginalMessage включен. Если доступ к исходному сообщению не требуется, рекомендуется отключить эту опцию, так как это может улучшить производительность. 395 [главная] ИНФОРМАЦИЯ org.apache.camel.impl.DefaultCamelContext - AllowUseOriginalMessage включен. Если доступ к исходному сообщению не требуется, рекомендуется отключить эту опцию, так как это может улучшить производительность. ИНФОРМАЦИЯ | StreamCaching не используется. При использовании потоков рекомендуется включить кеширование потоков. См. Дополнительную информацию на http://camel.apache.org/stream-caching.html 395 [main] INFO org.apache.camel.impl.DefaultCamelContext - StreamCaching не используется. При использовании потоков рекомендуется включить кеширование потоков. Дополнительные сведения см. На странице http://camel.apache.org/stream-caching.html ИНФОРМАЦИЯ | Конечная точка настроена с noop = true, поэтому конечная точка также должна быть идемпотентной 395 [main] INFO org.apache.camel.component.file.FileEndpoint - Конечная точка настроена с noop = true, поэтому конечная точка также должна быть идемпотентной INFO | Использование идемпотентного репозитория на основе памяти по умолчанию с максимальным размером кеша: 1000 395 [main] INFO org.apache.camel.component.file.FileEndpoint - Использование идемпотентного репозитория на основе памяти по умолчанию с максимальным размером кеша: 1000 INFO | Маршрут: route1 запущен и потребляет из: Конечная точка [file: //./? FileName = Datos.xml & noop = true] 502 [main] INFO org.apache.camel.impl.DefaultCamelContext - Маршрут: route1 начат и использует из: Конечная точка [ file: //./? fileName = Datos.xml & noop = true] ИНФОРМАЦИЯ | Маршрут: route2 запущен и потребляет от: Конечная точка [direct: // ftp] 504 [main] INFO org.apache.camel.impl.DefaultCamelContext - Маршрут: route2 начат и потребляет от: Конечная точка [direct: // ftp] INFO | Всего 2 маршрута, из которых 2 запущены. 504 [основная] ИНФОРМАЦИЯ org.apache.camel.impl.DefaultCamelContext - Всего 2 маршрута, 2 из которых запущены. ИНФОРМАЦИЯ | Apache Camel 2.15.1.redhat-621084 (CamelContext: camel-1) запустился через 0,504 секунды 507 [main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.15.1.redhat-621084 (CamelContext: camel-1 ) началось через 0,504 секунды INFO | Создан XPathFactory по умолчанию com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl@5434283f 1533 [Camel (camel-1) thread # 0 - file: //./] INFO org.apache.camel.builder.xml. XPathBuilder - Создан XPathFactory по умолчанию com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl@5434283f ИНФОРМАЦИЯ | images: ftp://190.0.56.190:8021/pruebasumman/conductor/71708375.jpg 1635 [Camel (camel-1) thread # 0 - file: //./] INFO route1 - imagen: ftp://190.0.56.190:8021/pruebasumman/conductor/71708375.jpg ИНФОРМАЦИЯ | Apache Camel 2.15.1.redhat-621084 (CamelContext: camel-1) выключается 10521 [main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.15.1.redhat-621084 (CamelContext: camel-1) выключает INFO | Начало постепенного выключения 2 маршрута (тайм-аут 300 секунд) 10524 [основная] ИНФОРМАЦИЯ org.apache.camel.impl.DefaultShutdownStrategy - Начало постепенного выключения 2 маршрута (тайм-аут 300 секунд) INFO | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 300 секунд. 10524 [Camel (camel-1) thread # 2 - ShutdownTask] ИНФОРМАЦИЯ org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 300 секунд. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 299 секунд. 11525 [Camel (camel-1) thread # 2 - ShutdownTask] ИНФОРМАЦИЯ org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 299 секунд. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 298 секунд. 12528 [Camel (camel-1) thread # 2 - ShutdownTask] INFO org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 298 секунд. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 297 секунд. 13529 [Верблюд (верблюд-1) поток № 2 - ShutdownTask] ИНФОРМАЦИЯ org.apache.camel.impl. DefaultShutdownStrategy - Ожидание, так как есть еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 297 секунд. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 296 секунд. 14540 [Camel (camel-1) thread # 2 - ShutdownTask] INFO org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 296 секунд. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 295 секунд. 15555 [Camel (camel-1) thread # 2 - ShutdownTask] INFO org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 295 секунд. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 294 секунды. 16568 [Camel (camel-1) thread # 2 - ShutdownTask] INFO org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 294 секунды. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 293 секунды. 17569 [Camel (camel-1) thread # 2 - ShutdownTask] ИНФОРМАЦИЯ org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 293 секунды. ИНФОРМАЦИЯ | Ожидание, так как есть еще 3 обмена в полете и ожидающих завершения, тайм-аут составляет 292 секунды. 18574 [Camel (camel-1) thread # 2 - ShutdownTask] INFO org.apache.camel.impl.DefaultShutdownStrategy - Ожидание, так как есть еще 3 обмена в полете и ожидающие завершения, тайм-аут составляет 292 секунды.

person hk6279    schedule 10.04.2018