2012-11-01 41 views

回答

1

通過它FileInputStream,應該工作。

muleContext.getClient().dispatch("sftp://...", new FileInputStream(file), null); 

如果不是,你必須通過它byte[]

請注意,dispatch是異步的:在SFTP通信發生時,呼叫將立即返回。如果您想等待完成,請使用send並將超時值作爲最後一個參數。

由於您配置了多個SFTP連接器,因此您必須在URL中指定連接器名稱。假如你想用SFTP_Upload_Connector派遣,你將不得不使用:

muleContext.getClient().dispatch("sftp://...?connector=SFTP_Upload_Connector", new FileInputStream(file), null); 

如果你想設置一個特定的目標文件名,使用它當作一個名爲的屬性映射filename屬性,例如:

muleContext.getClient().dispatch("sftp://...?connector=SFTP_Upload_Connector", new FileInputStream(file), Collections.singletonMap("filename", "somen_ame")); 
+0

現在我收到錯誤消息:根異常堆棧跟蹤: java.lang.IllegalStateException:至少有2個連接器匹配協議「SFTP」,必須使用端點來指定 所以使用連接器'連接器'屬性/屬性。 你的配置中支持「sftp」的連接器有:SFTP_connector,SFTP_Upload_Connector, –

+0

啊,你沒有說你配置了幾個SFTP連接器:)沒問題,你只需要指定你想在URL中使用的連接器,我已經相應地修改了我的回覆。 –

+0

謝謝,作品不錯。還有一個問題,如何設置目標文件名? –