2017-10-13 17 views
0

SFTPの場所に接続し、Mule SFTPコネクタを使用して.zipファイルをダウンロードしようとしています。非常に簡単な設定に見えますが、私の設定で何が欠けているか分かりません。なぜ私のために働いていないのか分からない。誰かがそれを見て、仕事をするために何を変えなければならないのかを教えてください。SFTPの場所からファイルをダウンロードするためのMule faile

以下のフロー設定では、HTTPエンドポイント(http://localhost:8181/invoice)から開始し、「ftpconnectivityFlow1」が呼び出され、「ftp」変数の値がチェックされ、その値に基づいてFTPロケーションまたはSFTPロケーション。変数 "ftp"をtrueに設定すると、FTPの場所からのファイルが出力フォルダにダウンロードされ、期待どおりにFTPの場所から削除されるのを見て、期待どおりに動作します。私はそれをfalseに設定するとエラーは起こりませんが、SFTPの場所にあるファイルはファイルが読み込めない(私が推測している)ことを意味し、出力フォルダにはダウンロードされません。だから私はペイロードを検査できるように私はカスタムトランスフォーマーを追加したデバッグのために。私のカスタムトランスフォーマーでは、FTPロケーションに接続するとバイナリデータ(すべての番号)があることがわかります。私の推測は.zipファイルですが、変数 "ftp"がfalseに設定されていると、接続しようとしていますその場合のペイロードには、httpの相対パスである "/ invoice"が含まれています。だから私の出力フォルダには "null"という名前のファイルが入っていて、それには "/請求書"が含まれています。

何か助けてください。

<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> 

答えて

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

あなたは後方これらのポート番号を持っているかもしれません。 FTPは通常ポート21で実行され、SFTP(SSH)では通常ポート22が使用されます。

+0

ポートと特殊文字の組み合わせであることがわかりました。エラーメッセージが表示されます。しかし、ついに私の問題は解決しました。 – Rai

関連する問題