我们有一个流程,我们已经实现了一个soap客户端来向服务提供者发送soap消息。
如果失败,我们需要重试服务调用 3 次。所以我们在内部使用了 HTTP 出站端点,直到成功的范围。
它正在按预期进行重试,但在成功的情况下,即使我们从服务获得响应,我们也会观察到如下超时错误。
[DispatchThread: 1] org.apache.cxf.endpoint.ClientImpl: Timed out waiting for response to operation {http://support.cxf.module.mule.org/}invoke.
观察:
我已经成功删除了直到成功并直接拥有了 HTTP 出站端点,在这种情况下没有超时错误。
后来我尝试使用直到成功并有一个确认表达来接受响应,仍然是相同的超时响应。
failureExpression="#[message.inboundProperties['http.status'] != 200]" ackExpression="#[message.correlationId]"
任何人都可以建议,如何配置直到成功接受响应而不抛出超时错误。
最佳答案
ackExpression
与“接受响应”无关,它用于生成一个值,该值将在流将当前事件传递给 until-successful
后用作新的消息负载。消息处理器。
尝试设置一个 response-timeout
在您的出站 HTTP 端点上查看是否有帮助:可能是在 until-successful
的上下文中使用的默认超时范围太大并产生此问题。
关于mule - 直到成功超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694305/