camel cxf uri选项property.XXX设置http客户端超时

时间:2017-06-28 12:10:33

标签: java web-services apache-camel cxf talend

可以通过camel cxf uri选项设置客户端超时吗?

可以设置cxf://someAddress?[options],其中options可以是properties.XXX。 有可能以某种方式设置http客户端接收超时?

我尝试了很多(在源代码或谷歌中找到),但没有人工作:

properties.com.sun.xml.ws.request.timeout
properties.com.sun.xml.internal.ws.request.timeout
properties.javax.xml.ws.client.receiveTimeout
properties.org.apache.cxf.jms.client.timeout
properties.org.apache.cxf.transport.http.async.SO_TIMEOUT
properties.conduit.client.ReceiveTimeout
properties.org.apache.cxf.transports.http.configuration.client.ReceiveTimeout
properties.http-conf:client.ReceiveTimeout
properties.HTTPClientPolicy.ReceiveTimeout
properties.org.apache.cxf.http.conduits.client.ReceiveTimeout
properties.org.apache.cxf.http.conduit.client.ReceiveTimeout
properties.org.apache.cxf.transports.http.configuration.HTTPClientPolicy.ReceiveTimeout

我知道sprinx xml是可行的,但我想通过Talend上下文配置它。

我也知道我可以通过CxfEndpointConfigurer bean配置cxf客户端,但是camel 2.13(无法升级)没有configureClient方法。

感谢您的回答。

2 个答案:

答案 0 :(得分:0)

this document中所述,您可以配置HTTP客户端以设置超时

<http-conf:conduit name="{http://apache.org/hello_world_soap_http}SoapPort.http-conduit">
  <http-conf:client Connection="Keep-Alive"
                    MaxRetransmits="1"
                    AllowChunking="false" 
                    ConnectionTimeout="60000"
                    ReceiveTimeout="60000"/>
</http-conf:conduit>

答案 1 :(得分:0)

也许您需要使用RouteBuilder,在您的路线中使用java变量。

Tyr做这样的事情:

from("cxf://someAddress?[options]?timeout=${yourTimeOutVariable}")