How to Configure Timeout Duration on the Client Side for Axis2 Web Services
Join the DZone community and get the full member experience.
Join For FreeAxis2 uses CommonsHTTPTransportSender by default, which is based on commons-httpclient-3.1. At transport level, there’re two types of timeouts that can be set:
1. Socket Timeout
2. Connection Timeout
Here’s how you can configure the above ones:
Way #1: Configuring timeouts in axis2.xml
Socket Timeout
<parameter name=”SO_TIMEOUT”>some_integer_value</parameter>Connection timeout
<parameter name=”CONNECTION_TIMEOUT”>some_integer_value</parameter>
Way #2: Configuring timeouts in code
… Options options = new Options(); options.setProperty(HTTPConstants.SO_TIMEOUT, new Integer(timeOutInMilliSeconds)); options.setProperty(HTTPConstants.CONNECTION_TIMEOUT, new Integer(timeOutInMilliSeconds)); // or options.setTimeOutInMilliSeconds(timeOutInMilliSeconds); …
Real-life code: How to set timeout for a Axis2 Stub?
long timeout = 2 * 60 * 1000; // Two minutes Stub stub = new TestStub(); stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(soTimeout); //or long timeout = 2 * 60 * 1000; // Two minutes Stub stub = new TestStub(); stub._getServiceClient().getOptions().setProperty( HTTPConstants.SO_TIMEOUT, new Integer(timeOutInMilliSeconds)); stub._getServiceClient().getOptions().setProperty( HTTPConstants.CONNECTION_TIMEOUT, new Integer(timeOutInMilliSeconds));
Published at DZone with permission of Singaram Subramanian, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments