web服务-Mule直到成功,只在超时的情况下重试



我已经在Mule 3.7中创建了一个直到成功(见下文):

<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>

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

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

在成功之前,我如何告诉忽略所有异常并停止重试(web服务关闭或超时时除外)?

干杯

最大

根据MuleSoft文档中的指定,如果发现异常或失败表达式为true,则"直到成功"作用域将重试。失败表达式不会覆盖默认行为。

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

另外,试着放括号-

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

即(当存在这两种类型中的任何一种的异常时)或状态为500。[在异常检查中添加外括号]

相关内容

  • 没有找到相关文章

最新更新