0
是否可以通過代碼調用sftp出站端點併發送文件? 我有一個Java代碼中的File對象(在自定義轉換器中)的引用,並且我想調用sftp出站端點並傳遞該文件引用。這是可行的嗎? 謝謝。Mule Esb CE sftp出站端點調用窗體代碼(自定義java變換器)
是否可以通過代碼調用sftp出站端點併發送文件? 我有一個Java代碼中的File對象(在自定義轉換器中)的引用,並且我想調用sftp出站端點並傳遞該文件引用。這是可行的嗎? 謝謝。Mule Esb CE sftp出站端點調用窗體代碼(自定義java變換器)
通過它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"));
現在我收到錯誤消息:根異常堆棧跟蹤: java.lang.IllegalStateException:至少有2個連接器匹配協議「SFTP」,必須使用端點來指定 所以使用連接器'連接器'屬性/屬性。 你的配置中支持「sftp」的連接器有:SFTP_connector,SFTP_Upload_Connector, –
啊,你沒有說你配置了幾個SFTP連接器:)沒問題,你只需要指定你想在URL中使用的連接器,我已經相應地修改了我的回覆。 –
謝謝,作品不錯。還有一個問題,如何設置目標文件名? –