Mule:如何将文件从FTP传递到Mule ESB中的Java类?

时间:2013-12-18 11:51:41

标签: mule mule-studio mule-el mule-module-jpa

在Mule中,我正在从FTP服务器下载文件。我想将此目录中的所有文件传递给我的java类,该类应该在我的流程中的Download_ZIP_File之后执行操作。我需要执行诸如读取文本文件和使用Java解压缩压缩文件之类的操作。

我的流程中应该有一个Java类,下载完成时应该引发一个函数调用。这个类的对象必须知道有关下载文件的所有信息。

有人可以帮忙吗?这是我目前的流程;

enter image description here

此流程的XML就像这样;

 <?xml version="1.0" encoding="UTF-8"?>

 <mule xmlns:ftp="http://www.mulesoft.org/schema/mule/ee/ftp"
        xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" 
        ... >
    <file:endpoint name="Download_File_KBB" responseTimeout="10000" doc:name="File" path="E:\csv\output"/>
    <file:connector name="Global_File_Connector" autoDelete="false" streaming="false" validateConnections="true" doc:name="File"/>
    <flow name="ftp_kbb_download_fileFlow1" doc:name="ftp_kbb_download_fileFlow1">
       <ftp:inbound-endpoint host="${ftp.host}" port="${ftp.port}" path="${ftp.pathInbound}" user="${ftp.user}" password="${ftp.password}" responseTimeout="10000" doc:name="KBB_FTP">
       </ftp:inbound-endpoint>
       <logger message="KBBUsedVehiclesNoSpecTabFormat-#[server.dateTime.year]-W#[server.dateTime.weekOfYear]" level="INFO" doc:name="Logger"/>
       <file:outbound-endpoint path="${file.inboundEndpoint}" outputPattern="#[header:originalFilename]" responseTimeout="10000" doc:name="Donwload_ZIP_FILE" connector-ref="Global_File_Connector"/>
    </flow>
  </mule>

1 个答案:

答案 0 :(得分:2)

一个选项是创建一个实现org.mule.api.lifecycle.Callable的类,然后在配置中使用component元素对其进行配置。

然后,您将可以完全访问此MuleEventContext课程的onCall方法中的Callable