早上好
我有一个代理服务,它从需要被动移动的 FTP 读取文件。在 WSO2 EI 6.1.0 中,我能够通过 URL 参数启用被动模式,
?transport.vfs.passive=true
并且没有问题。
在 WSO2 EI 6.2.0 中,相同的代理服务失败并出现以下错误
[EI-Core] DEBUG - FtpClientFactory$FtpConnectionFactory SYST
[EI-Core] DEBUG - FtpClientFactory$FtpConnectionFactory 215 UNIX 类型:L8
[EI-Core] DEBUG - FtpClientFactory$ FtpConnectionFactory PORT192,168,200,195,223,83
[EI-Core] DEBUG - FtpClientFactory$FtpConnectionFactory 200 PORT 命令成功。考虑使用 PASV。
[EI-Core] DEBUG - FtpClientFactory$FtpConnectionFactory LIST OUT/VERIFY/IN
[EI-Core] DEBUG - FtpClientFactory$FtpConnectionFactory 425 无法建立连接。
日志的主要区别是 ftp answer 200 PORT 命令成功。考虑使用 PASV。
启用被动模式的参数是否在 vfs 和 vfs2 之间更改,或者是否有另一种方法可以在 WSO2 EI 6.2.0 编辑的 VFS FTP 中启用被动模式,我也尝试了 ?vfs.passive=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?transport.vfs.passive=true
</parameter>
<parameter name="transport.vfs.ContentType">application/xml</parameter>
<parameter name="transport.vfs.Locking">false</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.*</parameter>
</proxy>