Mule: Как передать File с 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>
1 ответ
Одним из вариантов является создание класса, который реализует org.mule.api.lifecycle.Callable
затем настройте его с component
элемент в вашей конфигурации.
Тогда у вас будет полный доступ к MuleEventContext
в onCall
метод этого Callable
учебный класс.