2016-03-30 12 views
0

Ich habe Geschäft mit einer Empfänger-FTP-Site, die ich eine Sequenz von SITE-Befehlen vor dem Beginn der Übertragung senden muss (vermutlich, weil der empfangende Server ein alter Mainframe ist, dass jeder verbindende Client ist auch ein zOS oder zVM-System und dies scheint ein Standard zwischen ihnen sein) und wir verwenden Mule ESB Community, um sich mit diesem Server zu verbinden. Weiß jemand, ob dies mit dem Standard-FTP-Connector möglich ist?Ist es möglich, einen FTP SITE-Befehl über einen Mule FTP-Connector zu senden?

Probensequenz:

site FIXRECFM 80 LRECL=80 RECFM=FB WRAPRECORD 

Antwort

1

Der Schlüssel ist, dass Mule zugrunde liegenden FTP-Client verwendet org.apache.commons.net.ftp.FTPClient, und dieses Objekt unterstützt eine sendSiteCommand() -Methode, die Sie senden beliebige Website können Befehle. Alles, was Sie tun müssen, ist den FTPClient zu jagen, was Sie tun können, indem Sie getFTP() auf Mule's FTPConnector aufrufen.

Wenn Sie die SITE-Befehle nur einmal benötigen, während die Verbindung hergestellt wird, können Sie auch eine benutzerdefinierte Mule FTP-Verbindungsfactory erstellen. Damit können Sie ein wenig zusätzliche Logik einfügen, um Ihre "SITE" -Befehle mit der Methode sendSiteCommand() zu senden, wann immer Mule die FTP-Verbindung initialisiert. Der Vorteil besteht darin, dass Sie automatisch das richtige Verhalten erhalten, indem Sie einfach zur benutzerdefinierten FTP-Verbindungsfactory wechseln - in der App ist keine spezielle Logik erforderlich.