WSO2 VFS FTP代理不读取参数
我编写了一个代理服务,并部署在WSO2 ESB 5上,通过http接收一些文件内容,并使用vfs传输将这些内容传输到ftp服务器。当我正确指定连接参数时,服务会按预期工作,但当我在连接字符串上指定错误以模拟服务器停机时,我无法使用[1]中指定的参数控制VFS传输的行为。我要寻找的是缩短VFS中发生的错误和Axis捕获的故障异常之间的延迟 正如您将在下面看到的,我指定了0次重试和0次重试之间的等待时间,但vfstranportsender类似乎无法以某种方式读取这些值,因为它始终执行相同的重试次数,并且每次执行时都等待相同的秒数,我还更改了值并放置了其他值,但结果总是一样的,在Axis能够接收到一些与错误相关的信息之前,服务器总是再重试3次,彼此之间有30秒的延迟 以下是我的代理服务,它可以正常工作:WSO2 VFS FTP代理不读取参数,ftp,wso2,esb,vfs,Ftp,Wso2,Esb,Vfs,我编写了一个代理服务,并部署在WSO2 ESB 5上,通过http接收一些文件内容,并使用vfs传输将这些内容传输到ftp服务器。当我正确指定连接参数时,服务会按预期工作,但当我在连接字符串上指定错误以模拟服务器停机时,我无法使用[1]中指定的参数控制VFS传输的行为。我要寻找的是缩短VFS中发生的错误和Axis捕获的故障异常之间的延迟 正如您将在下面看到的,我指定了0次重试和0次重试之间的等待时间,但vfstranportsender类似乎无法以某种方式读取这些值,因为它始终执行相同的重试次数
<?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>
尝试向端点URL追加参数,如下所示
<address uri="vfs:ftp://ja8irof_ftp:passftp@localhost:21?transport.vfs.MaxRetryCount=0&transport.vfs.ReconnectTimeout=0"/>
这解决了问题,非常感谢。你知道为什么另一种方法不起作用吗?@JairoFERNANDEZ这是因为当你设置参数时,它是为vfs传输侦听器设置的,而不是为vfs传输发送器设置的。对于transport sender,您需要按照此回答设置参数谢谢您的评论Riyafa,有足够的信息总是好的。现在我更好地理解了这个问题以及如何使用参数。
<address uri="vfs:ftp://ja8irof_ftp:passftp@localhost:21?transport.vfs.MaxRetryCount=0&transport.vfs.ReconnectTimeout=0"/>