我与收件人FTP站点有业务往来,要求我在启动任何传输之前发送一系列SITE命令(可能是因为接收服务器是旧的大型机,假设任何连接客户端也是zOS或zVM系统,这似乎作为他们之间的默认值)我们正在使用Mule ESB社区连接到此服务器。有没有人知道使用标准FTP连接器是否可行?
样本序列:
site FIXRECFM 80 LRECL=80 RECFM=FB WRAPRECORD
答案 0 :(得分:0)
关键是Mule的底层FTP客户端使用org.apache.commons.net.ftp.FTPClient,并且此对象支持sendSiteCommand()方法,该方法允许您发送任意SITE命令。您需要做的就是搜索FTPClient,我相信您可以通过在Mule的FTPConnector上调用getFTP()来实现。
如果在发出连接时只需要一次SITE命令,那么您还可以创建自定义Mule FTP连接工厂。这样,只要Mule初始化FTP连接,就可以使用sendSiteCommand()方法插入一小部分额外逻辑来发送“SITE”命令。好处是只需切换到自定义FTP连接工厂即可自动获得正确的行为 - 应用程序中无需特殊逻辑。