我们的项目我们使用ftp:inbound-channel-adapter从FTP服务器轮询文件。工作正常。但是在轮询之间无法正常工作。当我看到FTP服务器日志时,我看到" 425无法打开数据连接。"现在,当我重新启动或停止并再次启动ftp:inbound-channel-adapter时,它的轮询正常。这个问题反复出现以解决我需要停止/启动ftp:inbound-channel-adapter.ftp:inbound-channel-adapter正在linux OS中运行。
使用spring-integration 3只是为了更清楚我已经包含了xsd信息 (弹簧一体化-3.0.xsd,弹簧集成-FTP-3.0.xsd)
我需要为FTP设置任何特定的客户端模式,即Active(本地/远程)/ Passive(本地/远程)等? 低于我的ftp:inbound-channel-adapter配置
<bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
<property name="host" value="abcd.com"/>
<property name="port" value="21"/>
<property name="username" value="userid"/>
<property name="password" value="password"/>
</bean>
<int-ftp:inbound-channel-adapter id="ftpInbound"
channel="ftpChannel"
session-factory="ftpClientFactory"
auto-create-local-directory="true"
delete-remote-files="true"
remote-directory="/"
local-filename-generator-expression="new java.text.SimpleDateFormat('yyyy-MM-dd-hhmmssSSS').format(new java.util.Date()) + '.'+ #this"
local-directory="${ftp.sync.folder}"
remote-file-separator="/">
</int-ftp:inbound-channel-adapter>
所以不确定我能在FTP服务器上做些什么。但是我想看看ftp中是否有任何选项:inbound-channel-adapter或者你建议的任何东西,以便每当FTP服务器抛出时#34; 425 Can& #39; t打开数据连接。&#34;而不是手动停止/启动ftp:inbound-channel-adapter是否有任何选项或自动方式使其工作。谢谢
添加了有关spring集成版本和ftp会话工厂的信息。
答案 0 :(得分:2)
有两种方法可以连接到FTP服务器主动和被动模式。
ActiveMode:FTP服务器必须与客户端提到的端口建立数据连接 (防火墙问题如果防火墙阻塞了端口,您将收到425数据连接错误)
Passivemode:客户端必须与FTP服务器提到的端口建立数据连接。 (在客户端没有公平问题。我们也可以在FTP服务器中配置passvieports并使这些端口不被FTP服务器防火墙阻止。)
如果未在ftpsessionfactory中指定任何clientmode,则默认为Active模式,即clientMode = 0。 所以我有防火墙问题导致425数据连接问题。我关闭防火墙后工作得很好。所以现在我改变了我的FTPsessionfactory使用Passivemode所以FTP服务器从不关心客户端防火墙
<bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
<property name="host" value="abcd.com"/>
<property name="port" value="21"/>
<property name="username" value="userid"/>
<property name="password" value="password"/>
<!-- 2 passive mode -->
<property name="clientMode" value="2"/>
</bean>
这种方式从不关心客户端的防火墙。 关于FTP http://slacksite.com/other/ftp.html
的非常好的帖子