WSO2 EI 6.2.0中transport.vfs.passive参数失效问题求助
解决WSO2 EI 6.2.0中FTP被动模式启用问题
从你的描述和日志内容来看,核心问题在于WSO2 EI 6.2.0对VFS传输组件的升级——它默认切换到了VFS2(基于Apache Camel的新版本组件),替代了EI 6.1.0使用的旧版VFS,两者的FTP被动模式启用参数存在明显差异,这就是导致你配置失效的原因。
问题根源
EI 6.1.0依赖的旧VFS组件支持transport.vfs.passive=true参数来开启被动模式,但EI 6.2.0使用的VFS2组件采用了全新的参数命名规则,旧参数不再生效,所以你的代理依然会尝试主动模式(发送PORT命令),最终触发服务器的连接失败报错。
正确的配置方案
在EI 6.2.0中,你需要使用VFS2对应的被动模式参数:passiveMode=true,直接附加在FTP URI末尾即可。修改后的transport.vfs.FileURI应该是:
vfs:ftp://xxx:xxx@192.168.10.100:21/OUT/VERIFY/IN?passiveMode=true
完整的代理服务配置示例
把你的代理配置更新为以下内容:
<?xml version="1.0" encoding="UTF-8"?> <proxy name="FTP_Test" startOnLoad="true" transports="vfs" xmlns="http://ws.apache.org/ns/synapse"> <target> <inSequence> <log category="WARN" level="custom"> <property name="Status" value="FTP processing"/> </log> </inSequence> <outSequence/> <faultSequence/> </target> <parameter name="transport.PollInterval">10</parameter> <parameter name="transport.vfs.FileURI"> vfs:ftp://xxx:xxx@192.168.10.100:21/OUT/VERIFY/IN?passiveMode=true </parameter> <parameter name="transport.vfs.ContentType">application/xml</parameter> <parameter name="transport.vfs.Locking">false</parameter> <parameter name="transport.vfs.FileNamePattern">.*.*</parameter> </proxy>
额外验证建议
- 确认你的FTP服务器已开启被动模式支持,并且开放了对应的被动端口范围
- 如果连接仍有问题,可以尝试在URI中指定被动端口范围,比如:
passiveMode=true&passivePortFrom=50000&passivePortTo=50100(端口范围需与服务器配置匹配)
内容的提问来源于stack exchange,提问作者gilles dartiguenave
相关产品推荐
相关产品推荐

