2017-10-13 2 views
0

Ich versuche, eine Verbindung zu einem SFTP-Speicherort herzustellen und eine Zip-Datei mit Mule SFTP-Anschluss herunterzuladen. Es sieht sehr einfach Konfiguration aus, aber ich bin mir nicht sicher, was in meiner Konfiguration fehlt. Ich kann nicht verstehen, warum es nicht für mich funktioniert. Kann mir bitte jemand einen Blick darauf werfen und vorschlagen, was ich ändern sollte, um Arbeit zu machen?Mule faile zum Herunterladen der Datei von SFTP-Standort

In unten fließt Konfigurationen, ich beginne mit einem HTTP-Endpunkt (http://localhost:8181/invoice) dann "ftpconnectivityFlow1" wird aufgerufen und es überprüft den Wert von "ftp" Variable und auf seinem Wert geht es entweder zu meinem FTP-Speicherort oder SFTP Lage. Wenn ich die Variable "ftp" auf "true" setze, funktioniert es wie erwartet, da ich sehen kann, dass die Datei vom FTP-Speicherort in meinen Ausgabeordner heruntergeladen und wie erwartet vom FTP-Speicherort gelöscht wird. Wenn ich es auf false setze, gibt es keinen Fehler, aber die Datei am SFTP-Speicherort ist immer noch da, was bedeutet, dass sie die Datei nicht lesen kann (ich rate) und sie nicht in meinen Ausgabeordner heruntergeladen wird. Für ein Debugging habe ich einen benutzerdefinierten Transformer hinzugefügt, damit ich die Payload überprüfen kann. In meinem benutzerdefinierten Transformator merke ich, dass es, wenn es an FTP-Speicherort verbindet einige binäre Daten (alle Nummer) hat, ich vermute, es ist meine .zip-Datei, aber wenn Variable "ftp" auf false festgelegt ist, bedeutet es versucht, eine Verbindung herzustellen Zum SFTP-Standort enthält die Nutzlast "/ Rechnung", was mein relativer HTTP-Pfad ist. So enthält mein Ausgabeordner eine Datei mit dem Namen "null" und alles was es enthält ist "/ Rechnung"

Jede Hilfe wird sehr geschätzt.

<flow name="ftpconnectivityFlow1"> 

    <logger message="ftp:#[message.outboundProperties['ftp']]" doc:name="Logger" level="INFO"/> 
    <choice doc:name="Choice"> 
     <when expression="#[message.outboundProperties['ftp']==true]"> 
      <flow-ref name="FTPConnection" doc:name="FTPFileDownloadConnection"/> 
     </when> 
     <otherwise> 
      <flow-ref name="SFTPConnection" doc:name="SFTPFileDownloadConnection"/> 
     </otherwise> 
    </choice> 
</flow> 

<flow name="FTPConnection"> 
    <ftp:inbound-endpoint host="host" port="22" path="abc" user="user" password="password" responseTimeout="10000" doc:name="FTP"/> 
    <custom-transformer class="abc.transformer.CustomeFileTransformer" /> 
    <logger message="connected to FTP" level="INFO" doc:name="Logger"/> 
    <file:outbound-endpoint path="output" outputPattern="#[message.inboundProperties['originalFilename']]" responseTimeout="10000" doc:name="File"/> 
</flow> 

<flow name="SFTPConnection"> 
    <sftp:inbound-endpoint  connector-ref="sftp-default" doc:name="SFTP" responseTimeout="10000" host="host" password="password" path="/Inbound" port="21" user="user"/> 
    <custom-transformer class="abc.transformer.CustomeFileTransformer" /> 

    <logger level="INFO" doc:name="Logger"/> 
    <file:outbound-endpoint path="output" outputPattern="#[message.inboundProperties['originalFilename']]" responseTimeout="10000" doc:name="File"/> 

</flow> 

Antwort

0
<ftp:inbound-endpoint host="host" port="22" ... doc:name="FTP"/> 
... 
<sftp:inbound-endpoint ... port="21" user="user"/> 

Sie könnten nach hinten, diese Port-Nummern haben. FTP läuft normalerweise auf Port 21 und SFTP (SSH) verwendet normalerweise Port 22.

+0

Vielen Dank für Ihre Eingabe, nach genauer Inspektion bemerkte ich, dass Problem Kombination von Port und spezielle Char in Passwort war ich immer noch nicht sicher, warum ich nicht war Fehlermeldung erhalten. Aber schließlich war mein Problem gelöst. – Rai

Verwandte Themen