Я использую 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+"")
журнал консоли:
Заранее спасибо.
Загрузите файл изображения в двоичном режиме