2016-07-21 3 views
1

Ich versuche, einen FTP-Ordner mit einem lokalen Verzeichnis zu sykonisieren. Dieser FTP-Server läuft unter z/OS, es ist ein Mainframe mit dem MVS-Betriebssystem.Spring Integration synchronisiert nicht mit FTP Mainframe-System

Bis jetzt hatte ich eine Menge Probleme, sogar um eine Verbindung zu dem Ordner herzustellen, den ich brauchte, da dieses System kein "normales" Ordnersystem hat.

Das ist, was ich in das Arbeitsverzeichnis ändern gemacht, wo meine Dateien sind:

public class DefaultFtpHostSessionFactory extends DefaultFtpSessionFactory { 
    protected void postProcessClientAfterConnect(FTPClient ftp) throws IOException { 
     ftp.changeToParentDirectory(); 
     ftp.changeWorkingDirectory("E377D."); 
    } 
} 

Jetzt habe ich einen Eingang-Kanal-Adapter definiert haben:

<int-ftp:inbound-channel-adapter 
     id="ljFtpInbound" 
     channel="ljFtpChannel" 
     session-factory="ljCachingSessionFactory" 
     auto-create-local-directory="true" 
     delete-remote-files="false" 
     filename-pattern="*" 
     remote-directory="*" 
     remote-file-separator="" 
     charset="UTF-8" 
     auto-startup="true" 
     preserve-timestamp="false" 
     local-filename-generator-expression="#this.toUpperCase()" 
     temporary-file-suffix=".writing" 
     local-directory="/tmp/"> 
    <int:poller fixed-rate="1000" /> 
</int-ftp:inbound-channel-adapter> 

Wie Sie kann das entfernte Verzeichnis ist "*", das ist für die Auflistung des Verzeichnisses, zumindest ist die einzige Möglichkeit, die ich es geschafft habe, zu tun.

Aber wenn FtpInboundFileSynchronizer versucht, den Ordner ich einen Fehler zu synchronisieren, weil, wenn es der Pfad die Datei zu kopieren versucht wird, bauen mit:

String remoteFilePath = remoteDirectoryPath + remoteFileSeparator + remoteFileName; 

was in meinem Fall wäre „STERNCHEN“ + „BLANK“ + "REMOTE_FILE_NAME", weil ich "*" als Remote-Verzeichnis verwenden musste, damit es die Datei nicht findet.

¿Wissen Sie, ob ich das Remote-Verzeichnis nicht einstellen kann (was ich versucht habe, aber nicht erreicht habe)? Oder es gibt eine andere Möglichkeit, dieses seltsame FTP-System zu synchronisieren.

Vielen Dank.

Antwort

0

Wie wäre es damit?

Beginnend mit der Version 4.3, die remote-directory/remote-directory-expression Attribute können unter der Annahme, null weggelassen werden. In diesem Fall wird gemäß dem FTP-Protokoll das Client-Arbeitsverzeichnis als Standard-Remote-Verzeichnis verwendet.

Das bedeutet, Sie sollten versuchen, auf Spring Integration 4.3 zu aktualisieren und entfernen Sie diese seltsame * überhaupt.

+0

Es funktionierte wie ein Charme! Vielen Dank! – Frank

Verwandte Themen