Apache Camel框架之FTP路由

17 篇文章 0 订阅
11 篇文章 2 订阅

在做项目集成类型的项目的时候,经常会有这样的需求,用户或者别的系统将文件传到一个FTP server,然后系统从FTP server取文件进行相应的处理.

本文简单的介绍和示例一个用Camel实现这样的需求:监听FTPserver是否有文件,取到文件做相应处理传到另外一个系统. (图片来源于Camel in Action)


1,搭建一个FTP server,从http://sourceforge.net/projects/filezilla/files/ 下载FileZilla安装,设置一个用户yorker/123456.

可以参照这个网址 http://xbeta.info/filezilla-server.htm

2,在Camel里实现路由:

  1. CamelContext context = new DefaultCamelContext();
  2. context.addRoutes(new RouteBuilder() {
  3. public void configure() {
  4. from("ftp://localhost/inbox?username=yorker&password=123456").to(
  5. "file:d:/temp/outbox");
  6. }
  7. });
  8. context.start();
  9. boolean loop = true;
  10. while (loop) {
  11. Thread.sleep(25000);
  12. }
  13. context.stop();
        CamelContext context = new DefaultCamelContext();
        context.addRoutes(new RouteBuilder() {
            public void configure() {                          
                from("ftp://localhost/inbox?username=yorker&password=123456").to(
                "file:d:/temp/outbox");
            }
        });
        context.start();
        boolean loop = true;
        while (loop) {
            Thread.sleep(25000);
        }

        context.stop();

这里主要是为了示例Camel对FTP的支持,没有加入processor的处理,downstream system也仅仅是用放到本地文件夹做示例.不过真正做项目的时候,在to里可以是别的类型,如JMS的queue,别的系统的FTB inbound文件夹,Web service等等.如将上面的from里面的uri写到to,则为上传到ftp文件夹.

运行时除了Camel要用到的jar包,还需要http://commons.apache.org/net/download_net.cgi 下载commons-net.jar

如何在流程的中间加入processor处理可以参见 http://blog.csdn.net/kkdelta/article/details/7231640

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值