Hi,
I've calling a SOAP service that I expect to take a while to complete.
I've using the code below to prepare the proxy.
But it keeps generating a SocketTimeoutException after two minutes.
Have I missed something?
Thanks
Jim
Code:
this.docConverterService = docConverterService;
BindingProvider binder = ( BindingProvider ) docConverterService;
((SOAPBinding)binder.getBinding()).setMTOMEnabled( true );
Client client = org.apache.cxf.frontend.ClientProxy.getClient(
docConverterService );
HTTPConduit http = ( HTTPConduit ) client.getConduit();
HTTPClientPolicy httpClientPolicy = http.getClient();
if( httpClientPolicy == null ) {
httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout( 10000 );
httpClientPolicy.setReceiveTimeout( 1000000 );
http.setClient( httpClientPolicy );
} else {
httpClientPolicy.setConnectionTimeout( 10000 );
httpClientPolicy.setReceiveTimeout( 1000000 );
}
if( urls.length > 1 ) {
log.debug( "Configuring LoadDistributorFeature for {} URLs",
urls.length );
List< String > alternateUrls = Arrays.asList( urls );
Collections.shuffle( alternateUrls );
LoadDistributorFeature feature = new LoadDistributorFeature ();
SequentialStrategy strategy = new SequentialStrategy();
strategy.setAlternateAddresses( alternateUrls );
feature.setStrategy( strategy );
feature.initialize( client, null );
} else {
binder.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY, urls[ 0 ].trim() );
}
Exception:
org.apache.cxf.interceptor.Fault: Could not send Message.
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
~[cxf-api-2.6.1.jar:2.6.1]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
~[cxf-api-2.6.1.jar:2.6.1]
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
[cxf-api-2.6.1.jar:2.6.1]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
[cxf-api-2.6.1.jar:2.6.1]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
[cxf-api-2.6.1.jar:2.6.1]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
[cxf-api-2.6.1.jar:2.6.1]
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
[cxf-rt-frontend-simple-2.6.1.jar:2.6.1]
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
[cxf-rt-frontend-jaxws-2.6.1.jar:2.6.1]
at $Proxy578.scheduledPdfQuery(Unknown Source) [na:na]
at sun.reflect.GeneratedMethodAccessor1798.invoke(Unknown Source)
~[na:na]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
~[na:1.6.0_26]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_26]
at
com.groupgti.gtisupport.model.services.taskengine.SchedulerTargetService.getRequests(SchedulerTargetService.java:239)
[SchedulerTargetService.class:na]
at
com.groupgti.gtisupport.model.taskengines.pdf.TaskEngine_PdfGenerator.execute(TaskEngine_PdfGenerator.java:174)
[TaskEngine_PdfGenerator.class:na]
at sun.reflect.GeneratedMethodAccessor1769.invoke(Unknown Source)
~[na:na]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
~[na:1.6.0_26]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_26]
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
[spring-aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
[spring-aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
[spring-aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
[spring-tx-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
[spring-aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
[spring-aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at $Proxy518.execute(Unknown Source) [na:na]
at
com.groupgti.gtisupport.model.services.taskengine.TaskWrapper.execute(TaskWrapper.java:130)
[TaskWrapper.class:na]
at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
[quartz-1.8.6.jar:na]
at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
[quartz-1.8.6.jar:na]
Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking
http://XXX.XXX.XXX.XXX/PDFGenerator/PDFGenerator_v1.asmx: Read timed out
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[na:1.6.0_26]
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
~[na:1.6.0_26]
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
~[na:1.6.0_26]
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
~[na:1.6.0_26]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1457)
~[cxf-rt-transports-http-2.6.1.jar:2.6.1]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1442)
~[cxf-rt-transports-http-2.6.1.jar:2.6.1]
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
~[cxf-api-2.6.1.jar:2.6.1]
at
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658)
~[cxf-rt-transports-http-2.6.1.jar:2.6.1]
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
~[cxf-api-2.6.1.jar:2.6.1]
... 26 common frames omitted
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.6.0_26]
at java.net.SocketInputStream.read(SocketInputStream.java:129)
~[na:1.6.0_26]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
~[na:1.6.0_26]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
~[na:1.6.0_26]
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
~[na:1.6.0_26]
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
~[na:1.6.0_26]
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
~[na:1.6.0_26]
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
~[na:1.6.0_26]
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
~[na:1.6.0_26]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1577)
~[cxf-rt-transports-http-2.6.1.jar:2.6.1]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1520)
~[cxf-rt-transports-http-2.6.1.jar:2.6.1]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1428)
~[cxf-rt-transports-http-2.6.1.jar:2.6.1]
... 29 common frames omitted