Web services Mule直到成功,仅在超时情况下重试

Web services Mule直到成功,仅在超时情况下重试,web-services,timeout,mule,esb,timeoutexception,Web Services,Timeout,Mule,Esb,Timeoutexception,我已经在Mule 3.7中编制了一个直至成功(见下文): 我只感兴趣的是在web服务关闭或超时时进行重试,直到重试成功。在成功之前,不应由重试任何其他异常 然而,我做了一个测试,在那里我得到一个org.mule.module.ws.consumer.SoapFaultException,但是直到成功为止一直尝试调用web服务 我如何告诉until successful忽略所有异常并停止重试(web服务关闭或超时除外) 干杯 Max测试中message.inboundProperties['

我已经在Mule 3.7中编制了一个直至成功(见下文):


我只感兴趣的是在web服务关闭或超时时进行重试,直到重试成功。在成功之前,不应由重试任何其他异常

然而,我做了一个测试,在那里我得到一个org.mule.module.ws.consumer.SoapFaultException,但是直到成功为止一直尝试调用web服务

我如何告诉until successful忽略所有异常并停止重试(web服务关闭或超时除外)

干杯


Max

测试中
message.inboundProperties['http.status']
的值是多少

另外,试着插入括号-

#[(exception!=null&&(exception.causedBy(java.net.ConnectException)| exception.causedBy(java.net.SocketTimeoutException)))| message.inboundProperties['http.status'!=500]


i、 e.(当这两种类型中的任何一种出现异常时)或状态为500。[在异常检查中添加了外括号]

测试中
message.inboundProperties['http.status']
的值是多少

另外,试着插入括号-

#[(exception!=null&&(exception.causedBy(java.net.ConnectException)| exception.causedBy(java.net.SocketTimeoutException)))| message.inboundProperties['http.status'!=500]


i、 e.(当这两种类型中的任何一种出现异常时)或状态为500。[将外括号添加到异常检查]

如MuleSoft文档中所述,如果发现异常或失败表达式为true,则将重试直到成功范围。失败表达式不会覆盖默认行为。

如MuleSoft文档中所指定,如果发现异常或失败表达式为true,则将重试直到成功范围。失败表达式不会覆盖默认行为。

http状态为Hanks Manik。http状态为500。然而,直到成功为止,他们一直在努力。也许我不明白failureExpression的功能。我也尝试过| | message.inboundProperties['http.status']==503],但它仍然在重试。您尝试过使用括号吗?失败表达式必须为返回true,直到成功重试。试着一次构建一个条件,看看哪一个让你的异常消失。http状态为500。然而,直到成功为止,他们一直在努力。也许我不明白failureExpression的功能。我也尝试过| | message.inboundProperties['http.status']==503],但它仍然在重试。您尝试过使用括号吗?失败表达式必须为返回true,直到成功重试。试着一次构建一个条件,看看是哪一个让你的异常消失。我已经尝试过了
<until-successful maxRetries="100" failureExpression="#[exception != null &amp;&amp; (exception.causedBy(java.net.ConnectException) || exception.causedBy(java.net.SocketTimeoutException)) || message.inboundProperties['http.status'] != 500]" synchronous="true" millisBetweenRetries="20000" doc:name="UntilSuccess">

<processor-chain>

  <set-payload value="#[flowVars.operationPayLoad]" doc:name="GetTransactionRequest" />

  <ws:consumer config-ref="GetTransactionWSConsumerConfig" operation="execute" doc:name="GetTransaction" />
</processor-chain>