Apache Camel框架之FTP路由

fmms 13年前
     <p>在做项目集成类型的项目的时候,经常会有这样的需求,用户或者别的系统将文件传到一个FTP server,然后系统从FTP server取文件进行相应的处理.</p>    <p>本文简单的介绍和示例一个用Camel实现这样的需求:监听FTPserver是否有文件,取到文件做相应处理传到另外一个系统.</p>    <p><img alt="Apache Camel框架之FTP路由 " src="https://simg.open-open.com/show/25b80b33bda54217a0fd339d5bacf977.png" width="682" height="221" /></p>    <p>1,搭建一个FTP server,从http://sourceforge.net/projects/filezilla/files/ 下载FileZilla安装,设置一个用户yorker/123456.</p>    <p>可以参照这个网址 http://xbeta.info/filezilla-server.htm</p>    <p>2,在Camel里实现路由:</p>    <p></p>    <pre class="brush:java; toolbar: true; auto-links: false;">        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();</pre>    <p></p>    <p>这里主要是为了示例Camel对FTP的支持,没有加入processor的处理,downstream system也仅仅是用放到本地文件夹做示例.不过真正做项目的时候,在to里可以是别的类型,如JMS的queue,别的系统的FTB inbound文件夹,Web service等等.</p>    <p>如何在流程的中间加入processor处理可以参见 http://blog.csdn.net/kkdelta/article/details/7231640</p>