ftp - WSO2 VFS FTP 代理不读取参数

标签 ftp wso2 esb vfs

我编写了一个代理服务并部署在 WSO2 ESB 5 上,以通过 http 接收一些文件内容,并使用 vfs 传输将该内容传输到 ftp 服务器。当我正确指定连接参数时,该服务按预期工作,但当我在连接字符串上指定错误的内容来模拟停机服务器时,我无法使用 [1] 中指定的参数来控制 VFS 传输的行为。我正在寻找的是缩短VFS中发生的错误和Axis捕获的故障异常之间的延迟;

正如您将在下面看到的,我指定了 0 次重试和 0 次重试之间的等待时间,但 VFSTransportSender 类似乎无法以某种方式读取这些值,因为它始终执行相同次数的重试并且等待相同的时间每次执行时的秒数,我也更改了值并放置了其他值,但结果始终相同,除了 Axis 能够接收到的原始请求之外,服务器总是会重试 3 次,彼此之间有 30 秒的延迟与错误相关的一些信息。

这是我的代理服务,没有任何问题:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ftpProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="https,http">
   <target>
  <inSequence>
     <log level="full"/>
     <property expression="json-eval($.key)" name="file_name"/>
     <property name="OUT_ONLY" value="true"/>
     <property name="FORCE_SC_ACCEPTED" scope="axis2" value="true"/>
     <property name="HTTP_SC" scope="axis2" value="200"/>
     <property expression="fn:concat(get-property('file_name'), '.json')"
               name="transport.vfs.ReplyFileName"
               scope="transport"/>
     <property name="OUT_ONLY" value="true"/>
  </inSequence>
  <endpoint name="ftp_endpoint">
     <address uri="vfs:ftp://jairof_ftp:passftp@localhost:21">
        <timeout>
           <duration>2000</duration>
           <responseAction>fault</responseAction>
        </timeout>
        <suspendOnFailure>
           <errorCodes>-1</errorCodes>
           <progressionFactor>1.0</progressionFactor>
        </suspendOnFailure>
        <markForSuspension>
           <errorCodes>-1</errorCodes>
        </markForSuspension>
     </address>
  </endpoint>
   </target>
   <parameter name="transport.vfs.ReconnectTimeout">0</parameter>
   <parameter name="transport.vfs.MaxRetryCount">0</parameter>
   <description/>
</proxy>

当我想模拟服务器无法访问时,我只需修改地址 URI,并将其放在用户不正确的位置:

<address uri="vfs:ftp://ja8irof_ftp:passftp@localhost:21">

我还尝试在调用端点之前将 Transport.vfs 参数设置为属性,但结果完全相同

在这里您可以检查日志文件的一部分,我在其中剪切了堆栈跟踪的某些部分以保持帖子简单:

[2016-10-29 12:23:01,134] ERROR - VFSTransportSender cannot resolve replyFile
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost".
... (the rest of stack trace)
...
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp".
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210)
... 29 more

[2016-10-29 12:23:34,223] ERROR - VFSTransportSender cannot resolve replyFile
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost".
... (the rest of stack trace)
...
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp".
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210)
... 29 more

[2016-10-29 12:24:07,842] ERROR - VFSTransportSender cannot resolve replyFile
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost".
... (the rest of stack trace)
...
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp".
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210)
... 29 more

[2016-10-29 12:24:07,844] ERROR - VFSTransportSender cannot resolve replyFile repeatedly: Could not connect to FTP server on "localhost".
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost".        
... (the rest of stack trace)
...
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp".
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210)
... 29 more

[2016-10-29 12:24:07,846] ERROR - Axis2Sender Unexpected error during sending message out
org.apache.axis2.AxisFault: cannot resolve replyFile repeatedly: Could not connect to FTP server on "localhost".
... (the rest of stack trace)
...
Caused by: org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost".
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:275)
at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.createClient(FTPClientWrapper.java:100)
at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.getFtpClient(FTPClientWrapper.java:134)
at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.<init>(FTPClientWrapper.java:59)
at org.apache.commons.vfs2.provider.ftp.FtpFileProvider.doCreateFileSystem(FtpFileProvider.java:128)
at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.getFileSystem(AbstractOriginatingFileProvider.java:155)
at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:119)
at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:88)
at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:738)
at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:626)
at org.apache.synapse.transport.vfs.VFSTransportSender.writeFile(VFSTransportSender.java:233)
... 19 more
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp".
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210)
... 29 more     

请向我发送任何意见、建议...我将不胜感激,提前感谢您的宝贵时间。

[1] https://docs.wso2.com/display/ESB500/VFS+Transport

最佳答案

尝试将参数附加到端点 URL,如下所示。

<address uri="vfs:ftp://ja8irof_ftp:passftp@localhost:21?transport.vfs.MaxRetryCount=0&amp;transport.vfs.ReconnectTimeout=0"/>

关于ftp - WSO2 VFS FTP 代理不读取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321878/

相关文章:

asp.net - 使用 ASP.NET(算法)创建 (FTP) 移动文件守护进程

wso2 - 无法在 WSO2 api 管理器中从 Web 浏览器浏览 h2 数据库

java - StAXON - 当 autoPrimitive 为 true 时,强制将特定值设置为 String

azure - FTP 到 Azure Blob 存储

java - 使用 PHP 脚本在免费虚拟主机上创建 Web 服务

c# - 使用显式 TLS/SSL 的 FtpWebRequest

wso2 - 如何在 WSO2 序列中的 switch case 中定义正则表达式条件?

找不到应用程序的 mule 配置

WSO2 ESB 未知错误代码 102511

soa - BPM 与 ESB - 编排?