Mule Esb CE sftp出站端点调用表单代码(自定义java转换器)

时间:2012-11-01 14:45:33

标签: sftp esb mule

是否可以通过代码调用sftp出站端点并发送文件? 我在java代码中引用了一个File对象(在自定义转换器中),我想调用sftp出站端点并传递该File引用。这可行吗? 感谢。

1 个答案:

答案 0 :(得分: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"));