我使用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);
,但它没有帮助。使用上面链接中的示例,如何增加超时?
答案 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设置。请看这里链接的答案。