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;
|
integrated latest changes from dnet40