Camel Ftp组件

时间:2018-04-09 14:45:32

标签: apache-camel ftp-client camel-ftp

我使用apache camel创建一个ftp客户端,用于将某些文件下载到某个本地目录。该程序读取一个xml文件,以获取将从ftp中获取的文件的名称。除了下载的文件已损坏外,该程序似乎有效。现在我试图下载一些图像文件,但我得到的是14.9Kb并且已损坏,没有显示错误信息。

这是我的代码:

    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+"")

控制台日志:

  

INFO | Apache Camel 2.15.1.redhat-621084(CamelContext:camel-1)是   从0开始[主要] INFO org.apache.camel.impl.DefaultCamelContext -   Apache Camel 2.15.1.redhat-621084(CamelContext:camel-1)正在启动   信息| JMX启用10 [主要] INFO   org.apache.camel.management.ManagedManagementStrategy - JMX是   启用INFO |加载185型转换器208 [主要] 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 [主要]信息   org.apache.camel.impl.DefaultCamelContext - StreamCaching不在   使用。如果使用流,则建议启用流缓存。   在http://camel.apache.org/stream-caching.html INFO上查看更多详情   |端点配置为noop = true,因此强制端点为   幂等也是395 [主要] 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] INFO   |路由:route2从以下开始并消耗:端点[direct:// ftp] 504   [main] INFO org.apache.camel.impl.DefaultCamelContext - 路线:route2   从以下开始和消费:Endpoint [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 [主要] 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 INFO   | imagen: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 INFO |   Apache Camel 2.15.1.redhat-621084(CamelContext:camel-1)正在关闭   down 10521 [main] INFO org.apache.camel.impl.DefaultCamelContext -   Apache Camel 2.15.1.redhat-621084(CamelContext:camel-1)正在关闭   向下信息|开始正常关闭2个路由(超时300   秒)10524 [主要]信息   org.apache.camel.impl.DefaultShutdownStrategy - 开始优雅   关闭2路由(超时300秒)INFO |等待有   还有3个飞行和挂起的交换完成,超时300   秒。 10524 [Camel(camel-1)thread#2 - ShutdownTask] INFO   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个飞行和挂起的交换完成,超时300   秒。信息|等待仍有3个机上飞机待定   交换完成,超时299秒。 11525 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个飞行和待完成的交换完成,299超时   秒。信息|等待仍有3个机上飞机待定   交换完成,超时298秒。 12528 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个飞行和待完成的交换完成,298超时   秒。信息|等待仍有3个机上飞机待定   交换完成,297秒超时。 13529 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个机上和待完成的交换完成,297超时   秒。信息|等待仍有3个机上飞机待定   交换完成,在296秒内超时。 14540 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个飞行和待完成的交换完成,296超时   秒。信息|等待仍有3个机上飞机待定   交换完成,在295秒内超时。 15555 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个飞行和待完成的交换完成,295超时   秒。信息|等待仍有3个机上飞机待定   交换完成,294秒超时。 16568 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个飞行和待完成的交换完成,在294超时   秒。信息|等待仍有3个机上飞机待定   交换完成,293秒超时。 17569 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个飞行和挂起的交换完成,293超时   秒。信息|等待仍有3个机上飞机待定   交换完成,在292秒内超时。 18574 [骆驼(骆驼-1)   线程#2 - ShutdownTask]信息   org.apache.camel.impl.DefaultShutdownStrategy - 等待有   还有3个机上和待完成的交换完成,292超时   秒。

提前致谢。

1 个答案:

答案 0 :(得分:2)

  

二进制模式

下载图像文件

默认情况下,Camel FTP通过ASCII模式下载文件。

binary=true添加到您的ftp路由将从ASCII模式转为二进制模式