骡子web服务cxf客户端调用,热来增加超时?

时间:2016-10-06 10:57:37

标签: mule

我使用CXF客户端代理从Java组件调用外部Web服务,如:https://docs.mulesoft.com/mule-user-guide/v/3.7/consuming-web-services-with-cxf#building-a-client-proxy

中所述

默认执行时间设置为10秒,但Web服务有时可能需要更多时间才能完成。我试着增加时间:

    ClientBuilder.newClient().property("http.receive.timeout", 600000);

,但它没有帮助。使用上面链接中的示例,如何增加超时?

3 个答案:

答案 0 :(得分:1)

sun.net.client.defaultConnectTimeout (default: -1 (forever))
sun.net.client.defaultReadTimeout (default: -1 (forever))

这适用于所有已完成的通话。

或者您可以尝试在上下文中设置超时。

Map<String, Object> requestContext = (BindingProvider)myInterface).getRequestContext();
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, 3000); // Timeout in millis
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, 1000); // Timeout in millis

答案 1 :(得分:0)

我尝试了上述帖子中的两个解决方案,但它们都不起作用。 正确答案是使用配置:

<configuration defaultResponseTimeout="300000"></configuration>

如:https://docs.mulesoft.com/mule-user-guide/v/3.6/global-settings-configuration-reference

中所述

答案 2 :(得分:0)

您可以使用responseTimeout参数来传递超时以及端点URL。这将为您提供更多的灵活性,因为您不会使用defaultTimeout设置。请看这里链接的答案。

http response timeout