Revision 47826
Added by Claudio Atzori almost 7 years ago
ResultSetClientFactory.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.enabling.resultset.client; |
2 | 2 |
|
3 |
import java.util.Map; |
|
4 |
import javax.xml.ws.BindingProvider; |
|
3 | 5 |
import javax.xml.ws.wsaddressing.W3CEndpointReference; |
4 | 6 |
|
5 | 7 |
import eu.dnetlib.enabling.resultset.client.utils.EPRUtils; |
... | ... | |
16 | 18 |
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; |
17 | 19 |
import org.springframework.beans.factory.annotation.Required; |
18 | 20 |
|
19 |
|
|
20 | 21 |
/** |
21 | 22 |
* |
22 | 23 |
* @author claudio |
... | ... | |
126 | 127 |
private ResultSetService getResultSetService(final W3CEndpointReference epr, final long connectTimeout, final long requestTimeout) { |
127 | 128 |
final ResultSetService service = serviceResolver.getService(ResultSetService.class, epr); |
128 | 129 |
|
129 |
if (log.isDebugEnabled()) { |
|
130 |
log.debug(String.format("creting resultSet service stub with connectTimeout(%s), requestTimeout(%s)", connectTimeout, requestTimeout)); |
|
131 |
} |
|
130 |
log.debug(String.format("creting resultSet service stub (%s) with connectTimeout(%s), requestTimeout(%s)", service.getClass().getName(), connectTimeout, requestTimeout)); |
|
132 | 131 |
|
133 | 132 |
if(service instanceof Client) { |
133 |
log.debug(String.format("setting timeouts for %s", Client.class)); |
|
134 | 134 |
final Client client = ClientProxy.getClient(service); |
135 | 135 |
final HTTPConduit http = (HTTPConduit) client.getConduit(); |
136 | 136 |
final HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); |
... | ... | |
140 | 140 |
httpClientPolicy.setReceiveTimeout(requestTimeout); |
141 | 141 |
|
142 | 142 |
http.setClient(httpClientPolicy); |
143 |
} else if (service instanceof BindingProvider) { |
|
144 |
log.debug(String.format("setting timeouts for %s", BindingProvider.class)); |
|
145 |
final Map<String, Object> requestContext = ((BindingProvider) service).getRequestContext(); |
|
146 |
|
|
147 |
// can't be sure about which will be used. Set them all. |
|
148 |
requestContext.put("com.sun.xml.internal.ws.request.timeout", requestTimeout); |
|
149 |
requestContext.put("com.sun.xml.internal.ws.connect.timeout", connectTimeout); |
|
150 |
|
|
151 |
requestContext.put("com.sun.xml.ws.request.timeout", requestTimeout); |
|
152 |
requestContext.put("com.sun.xml.ws.connect.timeout", connectTimeout); |
|
153 |
|
|
154 |
requestContext.put("javax.xml.ws.client.receiveTimeout", requestTimeout); |
|
155 |
requestContext.put("javax.xml.ws.client.connectionTimeout", connectTimeout); |
|
143 | 156 |
} |
144 | 157 |
|
145 | 158 |
return service; |
Also available in: Unified diff
integrated latest changes from dnet40