ローカルディレクトリでFTPフォルダを同期させようとしています。このFTPサーバーはz/OS上で実行されています。MVSオペレーティング・システムを備えたメインフレームです。春の統合がFTPメインフレームシステムと同期しない
これまで私は、このシステムには「通常の」フォルダーシステムがないため、必要なフォルダーに接続することにも多くの問題がありました。
これは私が私のファイルがある作業ディレクトリに変更するために何をやったかである:
public class DefaultFtpHostSessionFactory extends DefaultFtpSessionFactory {
protected void postProcessClientAfterConnect(FTPClient ftp) throws IOException {
ftp.changeToParentDirectory();
ftp.changeWorkingDirectory("E377D.");
}
}
今、私は、入力チャネル・アダプタを定義した:あなたのよう
<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>
リモートディレクトリが "*"であることに気づくことができます。これはディレクトリをリストするためのものです。
しかしFtpInboundFileSynchronizerが、それはファイルをコピーしようとしたときにパスが構築されているので、私はエラーを取得するフォルダを同期しようとしたときに:String remoteFilePath = remoteDirectoryPath + remoteFileSeparator + remoteFileName;
は、私の場合だろう「ASTERISK」+「BLANK」 + "REMOTE_FILE_NAME"、リモートディレクトリとして "*"を使用しなければならなかったので、ファイルが見つかりません。
¿リモートディレクトリを設定できないかどうか知っていますか(これは試しましたが達成されませんでした)?あるいは、この奇妙なFTPシステムを同期させる別の方法があります。
ありがとうございます。
魅力的に機能しました!ありがとうございました! – Frank