Question

I have a bundle on Fuse ESB 7. It routes a message to a web service using CXF like this:

from("vm:myEndPoint")
.to("cxf:http://remotews:8989/CreateUser/UserBean?serviceClass=com.co.Srvcl")

Timeout for this connection is 30 seconds by default. Question is how can I decrease the timeout value on the client side?

From what I have understood, this timeout can be set on the CXF web service (WS producer side) as below:

<http-conf:conduit
    name="{http://service.co.com}MyServiceBean.http-conduit">
    <http-conf:client ReceiveTimeout="4000" ConnectionTimeout="4000" />
</http-conf:conduit>

<cxf:cxfEndpoint id="myEndpoint" address="${my.url}"
    endpointName="s:srvcl-wsPort" serviceClass="com.co.Srvcl"
    serviceName="s:SrvclService" xmlns:s="http://my.comp.com">
    <cxf:properties>
        <entry key="dataFormat" value="POJO" />
        <entry key="serviceClass" value="com.co.Srvcl" />
    </cxf:properties>
</cxf:cxfEndpoint>

But I don't have any control on the Web Service itself, I just need to set the timeout on the client side.

Was it helpful?

Solution

You can do the same http-conf:conduit on the client side.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top