Karan Khanna
Karan Khanna

Reputation: 2147

Setting timeout for Apache Camel CXF consumer component

I want to set timeout for Apache Camel CXF consumer component.

My code looks something like:

<route>
   <from uri="direct:NDS/getUserInformation" />
   <to uri="freemarker:file:/application/DT/adapter/NDSLookupService.ftl" />
   <bean ref="ndsServiceLogger" method="logNDSRequest" />
   <setHeader headerName="SOAPAction">
      <simple>getLookUpServiceDetails</simple>
   </setHeader>
   <bean ref="ndsServiceLogger" method="logNDSServiceStartTime" />
   <toD uri="${headers.nds_url}?wsdlURL=/application/DT/adapter/NDSLookupService.wsdl&amp;serviceName={http://webservices.lookup.sdp.bharti.ibm.com}NDSLookupServiceService&amp;portName={http://webservices.lookup.sdp.bharti.ibm.com}NDSLookupService&amp;dataFormat=MESSAGE" />
   <bean ref="ndsServiceLogger" method="logNDSServiceEndTime" />
   <bean ref="ndsServiceLogger" method="logNDSResponse" />
   <convertBodyTo type="java.lang.String" />
</route>

Upvotes: 0

Views: 1618

Answers (1)

Vadim
Vadim

Reputation: 4120

How about to try properties http.connection.timeout and http.receive.timeout?

UPD: it does not work... I can just give you ideas where to go...

I use CXF bus for endpoints and Asynchronous transport (doc at Asynchronous Client HTTP Transport . It is possible to set timeouts there like below.

<cxf-core:bus bus="bus-common-outbound">
    <cxf-core:properties>
        <spring:entry key="use.async.http.conduit" value="true" />
        <spring:entry key="org.apache.cxf.transport.http.async.usePolicy" value="ALWAYS" />
        <spring:entry key="org.apache.cxf.transport.http.async.SO_TIMEOUT" value="45000" /> 
    </cxf-core:properties>      
</cxf-core:bus>

and endpoint has property "bus" pointed to that by its "bus" property like: bus=bus-common-outbound

maybe you can use something like that or dig deeper for default synchronous transport...

Upvotes: 0

Related Questions