ls、get、rm 用に構成された単純な ftp 送信ゲートウェイがあります。
<int-ftp:outbound-gateway id="gatewayLS"
cache-sessions="false"
session-factory="incomingCachingSessionFactory"
request-channel="inboundChannel"
command="ls"
command-options="-1"
expression="'${ftp.pull.remote.directory}'"
reply-channel="toSplitter" />
<channel id="toSplitter">
<interceptors>
<wire-tap channel="logger" />
</interceptors>
</channel>
<logging-channel-adapter id="logger"
log-full-message="true" level="DEBUG" />
<splitter id="splitter" input-channel="toSplitter"
output-channel="toGet" />
<int-ftp:outbound-gateway id="gatewayGET"
cache-sessions="false"
local-directory="${ftp.pull.local.directory}"
session-factory="incomingCachingSessionFactory"
request-channel="toGet"
reply-channel="downloadedFileChannel"
command="get"
command-options="-P"
expression="headers['file_remoteDirectory'] + '/' + payload" />
これは、複数の異なる FTP サーバーに接続して、私の開発用 Windows ボックスで完全に機能します。
そして私のログ出力が期待される
DEBUG: org.springframework.integration.ftp.session.DefaultFtpSessionFactory - Connected to server [ftp.domain.com:21]
DEBUG: org.springframework.integration.ftp.gateway.FtpOutboundGateway - handler 'org.springframework.integration.ftp.gateway.FtpOutboundGateway#0' sending reply Message: [Payload=[test_file.zip]][Headers={timestamp=1343143242030, id=56758ef9-57e5-43d6-b8b7-c36539d9fd0d, file_remoteDirectory=/images/}]
「サーバーに接続」と「返信メッセージの送信」の間の時間もほぼ瞬時です
ただし、2 台の Centos サーバー (5.8 および 6.2) に展開されると、LS の応答チャネルは常に空になります。
DEBUG: org.springframework.integration.ftp.session.DefaultFtpSessionFactory - Connected to server [ftp.domain.com:21]
DEBUG: org.springframework.integration.ftp.gateway.FtpOutboundGateway - handler 'org.springframework.integration.ftp.gateway.FtpOutboundGateway#0' sending reply Message: [Payload=[]][Headers={timestamp=1343143961046, id=31759d6f-201e-4028-8943-0a68ae64db81, file_remoteDirectory=/images/}]
「サーバーに接続しました」から「返信メッセージを送信する」までの時間も異常に長いです。
いくつかの詳細情報:
3台のマシンはすべてmavenを使用して、同じコードベースからWARを構築しています。
2 つの centos マシンは異なるデータセンターにあります
複数の無関係な FTP サーバーを試しましたが、結果は同じでした
ftpサーバーには間違いなくファイルがあります
- ftp サーバーは、「ncftp」および「ftp」を使用して確認された、centos ボックスでアクセス可能です。
この投稿がかなり漠然としていることは知っていますが、それは私を狂わせています。どんな考えでも大歓迎です