Компонент Mule SFTP Component

Я разрабатываю поток мулов, в котором процесс мула должен загружать файл/файлы (из исходного каталога) на SFTP-сервер.

Папка IN (эта папка содержит файл для передачи на SFTP)

у меня ниже поток мула

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

<mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:sftp="http://www.mulesoft.org/schema/mule/sftp" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
       xmlns:spring="http://www.springframework.org/schema/beans" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/sftp http://www.mulesoft.org/schema/mule/sftp/current/mule-sftp.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
    <flow name="sftpFlow1">
        <poll doc:name="Poll">
            <fixed-frequency-scheduler frequency="30" startDelay="10" timeUnit="SECONDS"/>
            <logger message="Hi" level="INFO" doc:name="Logger"/>
        </poll>
        <flow-ref name="sftpSub_Flow" doc:name="Flow Reference"/>
    </flow>
    <sub-flow name="sftpSub_Flow">
        <file:outbound-endpoint path="D:\IN" responseTimeout="10000" doc:name="File"/>
        <sftp:outbound-endpoint exchange-pattern="one-way" host="host" port="port" path="sftppath" user="user" password="password" responseTimeout="10000" doc:name="SFTP"/>
    </sub-flow>

</mule>

Проблемы: я не вижу никаких ошибок или исключений, но ожидаемые файлы из папки IN не получают передачу на SFTP-сервер. Я вижу файл ****.dat каждый раз, когда выполняется подпоток.

Любое предложение?


person Mind Peace    schedule 31.07.2018    source источник


Ответы (2)


Здесь вы использовали обе исходящие конечные точки. Вам нужен компонент входящей конечной точки файла, чтобы выбрать файл из исходного местоположения. см. приведенный ниже образец для дальнейшего https://dzone.com/articles/anypoint-file-connector-with-mulesoft

вы можете использовать свойство outputPattern в конечной точке sftpoutbound, чтобы изменить имя файла с любым расширением

person Nishanthi Wickramasinghe    schedule 01.08.2018
comment
Благодарю вас за ответ, однако, согласно требованию, и SFTP, и FILE должны быть исходящими конечными точками, поэтому я разработал такой пример потока. - person Mind Peace; 01.08.2018
comment
Приложение должно иметь какой-то ввод. В вашем образце этого нет, поэтому он нереалистичен. Если вы ожидаете ответа, вы должны предоставить более четкий образец. - person aled; 20.11.2018

Поскольку приложение на самом деле не показывает никаких входных данных, я предполагаю, что образец ошибочен, но реальное приложение имеет некоторую входящую конечную точку (например, входящую конечную точку файла), которая читает в потоковом режиме. Подпоток пытается дважды использовать входной поток для вывода на две исходящие конечные точки. Поскольку первый использует поток, второй, SFTP, получает потребляемый пустой поток в качестве входных данных, поэтому он ничего не выводит. Решение состоит в том, чтобы преобразовать ввод во что-то в памяти, например, используя преобразователь массива объектов в байты в середине. Имейте в виду, что для больших файлов у вас может не хватить памяти.

person aled    schedule 20.11.2018