I have an user requirement to set timeout per request such that the user can
specify the timeout for the web service.

 

 

 

Client client = ClientProxy.getClient(port);

client.getRequestContext().put("thread.local.request.context", "true");

 

HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();

httpClientPolicy.setAllowChunking(false);

httpClientPolicy.setAccept("text/xml");

httpClientPolicy.setAcceptEncoding("gzip,deflate,sdch");

httpClientPolicy.setCacheControl("No-Cache");

httpClientPolicy.setContentType("text/xml");

httpClientPolicy.setConnectionTimeout(2000);

httpClientPolicy.setReceiveTimeout(receiveTimeout);

 

HTTPConduit http = (HTTPConduit) client.getConduit();

http.setClient(httpClientPolicy);

 

 

 

receiveTimeout above is a parameter. I found out that if the port is a
static variable (shared by all threads), then after the first user set
receiveTimeout, the 2nd user will be affected by this setting.

What I want to achieve is that if the user does not set the receiveTimeout,
it will be using CXF default which is 60s and it will be affected by other
threads.

 

Reply via email to