You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 MI 4.0.0 FTP入站端点文件读取错误求助

问题分析与解决方案

错误根源

从堆栈跟踪可以看到,核心错误是java.net.SocketException: Connection reset,发生在FTP客户端尝试建立数据连接(用于列出目录或读取文件)的阶段。这通常是由于FTP连接模式不匹配、防火墙拦截或路径配置问题导致的。

解决方案步骤

  • 启用FTP被动模式:大多数现代FTP服务器默认要求使用被动模式(Passive Mode),而WSO2 MI的VFS传输默认可能使用主动模式。添加以下参数强制使用被动模式:

    <parameter name="transport.vfs.FTPPassiveMode">true</parameter>
    
  • 验证FTP路径格式:确保transport.vfs.FileURI的路径格式正确:

    • 如果FTP端口不是默认的21,需在IP后指定端口,例如:ftp://user:pass@ip:port/path
    • 路径末尾不需要添加额外斜杠,确保指向的是一个存在且有读取权限的目录
  • 检查防火墙与网络权限:

    • 确保WSO2 MI服务器能访问FTP服务器的21端口(控制连接)
    • 如果使用被动模式,FTP服务器配置的被动端口范围需对MI服务器开放

修正后的入站端点配置

<?xml version="1.0" encoding="UTF-8"?>
<inboundEndpoint name="file-inbound-endpoint" onError="file-inbound-endpoint-fault-sequence" protocol="file" sequence="file-inbound-endpoint-in-sequence" suspend="false" xmlns="http://ws.apache.org/ns/synapse">
    <parameters>
      <parameter name="interval">10000</parameter>
      <parameter name="sequential">true</parameter>
      <parameter name="coordination">true</parameter>
      <parameter name="transport.vfs.ActionAfterProcess">NONE</parameter>
      <parameter name="transport.vfs.FileURI">ftp://{username}:{password}@{ip_address}/{location-path}</parameter>
      <parameter name="transport.vfs.FileNamePattern">.*\.swf</parameter> 
      <parameter name="transport.vfs.ContentType">text/plain</parameter>
      <!-- 启用FTP被动模式 -->
      <parameter name="transport.vfs.FTPPassiveMode">true</parameter>
      <!-- 可选:指定FTP控制连接的字符编码 -->
      <parameter name="transport.vfs.FTPControlEncoding">UTF-8</parameter>
    </parameters>
</inboundEndpoint>

额外排查点

  • 确认FTP服务器允许该用户读取目标目录下的文件
  • 使用第三方FTP客户端(如FileZilla)用相同凭据连接,验证是否能正常列出和读取文件,排除FTP服务器端问题

内容的提问来源于stack exchange,提问作者Madhushani Hewagama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:32:03