Hi, I think it should work this way:
((BindingProvider)proxy).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); ((BindingProvider)proxy).getRequestContext().put(HTTPClientPolicy.class.getName(), httpClientPolicy); The code should works concurrently per request. Regards, Andrei. > -----Original Message----- > From: Christopher Cheng [mailto:m...@christophercheng.com] On Behalf Of > li...@christophercheng.com > Sent: Donnerstag, 26. Juli 2018 03:00 > To: users@cxf.apache.org > Subject: How could I set HttpClientPolicy per request? > > 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. > > As a recipient of an email from Talend, your contact personal data will be on our systems. Please see our contacts privacy notice at Talend, Inc. <https://www.talend.com/contacts-privacy-policy/>