使用Camel通过休息调用从FTP下载文件集

时间:2017-10-09 15:29:31

标签: apache-camel

我想通过休息调用使用驼峰路由从ftp下载一组文件: 我尝试以下方法:    from("cxfrs:bean:restndpoint") .pollEnrich("some ftp url") .to("destinationFilesLocation") .bean(MyBean.class);
它仅适用于ftp上的一个文件,当我尝试再次运行它只是等待文件时。如果我替换pollEnrich("某些ftp url")来自("某些ftp url")骆驼不会等待休息呼叫只是一直下载文件。

2 个答案:

答案 0 :(得分:0)

这就是pollEnrich EIP模式的工作原理。它用于轮询单个消息。

通过REST调用下载一组FTP文件的用例听起来更像是应该使用控制总线EIP模式,其中REST调用将触发启动另一个执行FTP下载的路由。

请参阅:http://camel.apache.org/controlbus.html

答案 1 :(得分:0)

这样的事情对我有用:

    from("cxfrs:bean:restndpoint")
            .to("controlbus:route?action=start&routeId=ftpRouteId&async=true");

    from("some ftp url").routeId("ftpRouteId").noAutoStartup()
            .choice()
            .when(body().isNull())
                .to("direct:extract")
            .otherwise()
                .to("destinationFilesLocation");

    from("direct:extract")
            .to("controlbus:route?action=stop&routeId=ftpRouteId&async=true")
            .bean(MyBean.class);