美丽燕郊我的家歌曲:Mule 3.x 中对 Ftp 协议的支持

来源:百度文库 编辑:偶看新闻 时间:2024/03/29 09:12:42
1.    前言
一直都听说 Mule 对 Ftp 和 Http 协议的支持很好,于是就关注了一下。

Mule 通过一系列的配置文件的配置就可以完成对 Ftp 服务器的下载和上传 ,这个还是很神奇的。

但是可惜的是, Mule 本身并不支持 FtpS 协议,只支持 SFTP ,这样对于工业级的使用上,未免有点不方便 。

  

2.    Mule 3.x 的基本知识
Mule 是一个开源的 ESB 软件,基本概念如下:

http://tech.ddvip.com/2010-05/1274838569154227.html


  

Mule 3.X 中对 Ftp 的支持是通过 < ftp:connector> 等标签实现的,具体的官方信息如下:

http://www.mulesoft.org/documentation/display/MULE3USER/FTP+Transport


  

在 Mule 3.x 中,运行 config.xml 的方法如下:

a.       在 app 目录下新建一个目录,比如 test-ftp

b.       将写好的 config.xml 拷贝到 test-ftp 下,并且取名为 mule-config.xml

c.       在 bin 目录下,运行 CMD 如下

Mule –app test-ftp


  

3.    Mule 3.x 中 ftp 支持的方法
a.       从 ftp 服务器上下载文件的方法



< mule xmlns = "http://www.mulesoft.org/schema/mule/core"

      xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

      xmlns:spring = "http://www.springframework.org/schema/beans"

      xmlns:http = "http://www.mulesoft.org/schema/mule/http"

      xmlns:vm = "http://www.mulesoft.org/schema/mule/vm"

      xmlns:ftp = "http://www.mulesoft.org/schema/mule/ftp"

      xmlns:file = "http://www.mulesoft.org/schema/mule/file"

      xsi:schemaLocation = "

        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

        http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.0/mule.xsd

        http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.0/mule-http.xsd

        http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/3.0/mule-vm.xsd

        http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/3.0/mule-file.xsd

        http://www.mulesoft.org/schema/mule/ftp http://www.mulesoft.org/schema/mule/ftp/3.0/mule-ftp.xsd" >

  



    < ftp:connector name = "ftpConnector" binary = "true"

       validateConnections = "true" />

  

  

    < model name = "ftp-model" >

       < service name = "ftp-reader" >

      

           < inbound >

              < ftp:inbound-endpoint user = "zhany" binary = "true" path = ""

                  password = "zhany" host = "192.168.120.33" port = "21"

                  pollingFrequency = "10000" connector-ref = "ftpConnector"  

                  >

                  < file:filename-wildcard-filter

                     pattern = "*.xml" />

              

          

    

           < outbound >

              < pass-through-router >

                  < file:outbound-endpoint path = "/e:/out" outputPattern = "[header:originalFilename]" />

              

          

  

      

    

  



  


  

b.       上传文件到 ftp 服务器上的办法



< mule xmlns = "http://www.mulesoft.org/schema/mule/core"

      xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

      xmlns:spring = "http://www.springframework.org/schema/beans"

      xmlns:http = "http://www.mulesoft.org/schema/mule/http"

      xmlns:vm = "http://www.mulesoft.org/schema/mule/vm"

      xmlns:ftp = "http://www.mulesoft.org/schema/mule/ftp"

      xmlns:file = "http://www.mulesoft.org/schema/mule/file"

      xsi:schemaLocation = "

        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

        http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.0/mule.xsd

        http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.0/mule-http.xsd

        http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/3.0/mule-vm.xsd

        http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/3.0/mule-file.xsd

        http://www.mulesoft.org/schema/mule/ftp http://www.mulesoft.org/schema/mule/ftp/3.0/mule-ftp.xsd" >



    < file:connector name = "fileConnector" pollingFrequency = "6000" />



    < ftp:connector name = "ftpConnector" />

    

    < model name = "model" >

       < service name = "service" >

           < inbound >

          

              < file:inbound-endpoint path = "/e:/tmp"

                  connector-ref = "fileConnector" >

              

          

           < outbound >

              

              < pass-through-router >

                  < ftp:outbound-endpoint host = "192.168.120.33"

                     port = "21" user = "zhany" password = "zhany" path = "" connector-ref = "ftpConnector" />