Mule: Как да предам файл от FTP към Java клас в Mule ESB?

В Mule изтеглям файлове от FTP сървър. Искам да предам всички файлове в тази директория на моя java клас, който трябва да извършва действия след Download_ZIP_File в моя поток. Трябва да извърша действия като четене на текстови файлове и разархивиране на компресираните файлове с помощта на Java.

Трябва да има Java клас в моя поток, за който трябва да се извика функция, когато изтеглянето приключи.. Обектът на този клас трябва да знае цялата информация за изтеглените файлове.

Може ли някой да помогне по въпроса? Ето моят текущ поток;

въведете описание на изображението тук

Моят 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>

person Rizwan Sohaib    schedule 18.12.2013    source източник


Отговори (1)


Една опция е да създадете клас, който прилага org.mule.api.lifecycle.Callable, след което да го конфигурирате с component елемент във вашата конфигурация.

След това ще имате пълен достъп до MuleEventContext в onCall метода на този Callable клас.

person David Dossot    schedule 18.12.2013
comment
Благодаря, Дейвид, почти стигнах. Моля, кажете ми как мога да предам свойства от mule-app.properties към съобщението на MuleEventContext на този Java компонент. Проблемът е, че получавам крайни точки на FTP сървър в MuleEventContext и имена на файлове също. Но не получавам местоположението си file.inboundEndpoint, където е записан файлът на моята локална машина. Трябва да знам това свойство, за да обработя изтегления файл... - person Rizwan Sohaib; 19.12.2013
comment
Използвайте Spring, за да инжектирате тези свойства във вашия компонент. - person David Dossot; 19.12.2013
comment
Имам работи.. препоръчан на Object Factories на mulesoft.org/documentation /display/current/ ... Трябва просто да създадем функция Setter в примерния клас, който имплементира Callable - person Rizwan Sohaib; 20.12.2013
comment
Дейвид, можеш ли да отговориш на този въпрос; stackoverflow.com/questions/20704818/ - person Rizwan Sohaib; 20.12.2013