是否可以通过 Mule FTP 连接器发送 FTP SITE 命令?
Is it possible to send an FTP SITE command through a Mule FTP connector?
我与一个收件人 FTP 站点有业务往来,该站点要求我在开始任何传输之前发送一系列 SITE 命令(大概是因为接收服务器是一个旧的大型机,假定任何连接的客户端也是一个 zOS或 zVM 系统,这似乎是它们之间的默认设置),我们正在使用 Mule ESB 社区连接到此服务器。有谁知道使用标准 FTP 连接器是否可行?
样本序列:
site FIXRECFM 80 LRECL=80 RECFM=FB WRAPRECORD
关键是 Mule 的底层 FTP 客户端使用 org.apache.commons.net.ftp.FTPClient,并且此对象支持 sendSiteCommand() 方法,可让您发送任意 SITE 命令。您需要做的就是找到 FTPClient,我相信您可以通过调用 Mule 的 FTPConnector 上的 getFTP() 来完成。
如果在发出连接时只需要一次 SITE 命令,那么您还可以创建自定义 Mule FTP 连接工厂。这让你可以插入一点额外的逻辑来在 Mule 初始化 FTP 连接时使用 sendSiteCommand() 方法发送你的 "SITE" 命令。好处是您只需切换到自定义 FTP 连接工厂即可自动获得正确的行为 - 应用程序中不需要特殊逻辑。
我与一个收件人 FTP 站点有业务往来,该站点要求我在开始任何传输之前发送一系列 SITE 命令(大概是因为接收服务器是一个旧的大型机,假定任何连接的客户端也是一个 zOS或 zVM 系统,这似乎是它们之间的默认设置),我们正在使用 Mule ESB 社区连接到此服务器。有谁知道使用标准 FTP 连接器是否可行?
样本序列:
site FIXRECFM 80 LRECL=80 RECFM=FB WRAPRECORD
关键是 Mule 的底层 FTP 客户端使用 org.apache.commons.net.ftp.FTPClient,并且此对象支持 sendSiteCommand() 方法,可让您发送任意 SITE 命令。您需要做的就是找到 FTPClient,我相信您可以通过调用 Mule 的 FTPConnector 上的 getFTP() 来完成。
如果在发出连接时只需要一次 SITE 命令,那么您还可以创建自定义 Mule FTP 连接工厂。这让你可以插入一点额外的逻辑来在 Mule 初始化 FTP 连接时使用 sendSiteCommand() 方法发送你的 "SITE" 命令。好处是您只需切换到自定义 FTP 连接工厂即可自动获得正确的行为 - 应用程序中不需要特殊逻辑。