cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Freeman Fang <freeman.f...@gmail.com>
Subject Re: Caused by: java.net.SocketException: Unexpected end of file from server
Date Wed, 28 Sep 2011 05:39:03 GMT
Hi,

I've encounter similar exception lately(with Cxf 2.4.2), client  
exception like
org.apache.cxf.interceptor.Fault: Could not send Message.
	at org.apache.cxf.interceptor.MessageSenderInterceptor 
$ 
MessageSenderEndingInterceptor 
.handleMessage(MessageSenderInterceptor.java:64)
	at  
org 
.apache 
.cxf 
.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:519)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:449)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:352)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:304)
	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java: 
134)
	at $Proxy34.sayHi(Unknown Source)
	at  
org 
.apache 
.servicemix 
.examples 
.cxf 
.HelloWorld_HelloWorldImplPort_Client 
.main(HelloWorld_HelloWorldImplPort_Client.java:78)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at  
sun 
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 
39)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:283)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.net.SocketException: SocketException invoking http://localhost:8181/cxf/HelloWorld

: Unexpected end of file from server
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native  
Method)
	at  
sun 
.reflect 
.NativeConstructorAccessorImpl 
.newInstance(NativeConstructorAccessorImpl.java:39)
	at  
sun 
.reflect 
.DelegatingConstructorAccessorImpl 
.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at org.apache.cxf.transport.http.HTTPConduit 
$WrappedOutputStream.mapException(HTTPConduit.java:1426)
	at org.apache.cxf.transport.http.HTTPConduit 
$WrappedOutputStream.close(HTTPConduit.java:1411)
	at  
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java: 
644)
	at org.apache.cxf.interceptor.MessageSenderInterceptor 
$ 
MessageSenderEndingInterceptor 
.handleMessage(MessageSenderInterceptor.java:62)
	... 15 more
Caused by: java.net.SocketException: Unexpected end of file from server
	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)
	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:766)
	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
	at  
sun 
.net 
.www 
.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java: 
1195)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java: 
379)
	at org.apache.cxf.transport.http.HTTPConduit 
$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1531)
	at org.apache.cxf.transport.http.HTTPConduit 
$WrappedOutputStream.handleResponse(HTTPConduit.java:1489)
	at org.apache.cxf.transport.http.HTTPConduit 
$WrappedOutputStream.close(HTTPConduit.java:1397)
	... 18 more

though I've seen this exception when deploy cxf service in OSGi  
container which use http-osgi service, but the underlying http server  
is still jetty(pax-web is based on jetty), so I believe that's the  
same case for standalone cxf http transport. The key reason of this  
exception is that on the server side the service process take a very  
long time, let's say 10 mins, so the connection between client and  
server become kinda of idle, for me in this case only configure client  
side connectionTimeout and receiveTimeOut isn't enough, we also need  
configure jetty server connector to set a longer maxIdleTime which can  
honor this long connection idle,  for pax-web, the standard jetty.xml  
configuration is acceptable so it's just like
<Set name="maxIdleTime">3000000</Set>
For cxf jetty server, I believe the httpj:connector here[1] should  
also work

[1]http://cxf.apache.org/docs/jetty-configuration.html

Freeman
On 2011-8-19, at 下午7:54, Blue Diamond wrote:

> *Please let me know if this issue was resolved in later versions of  
> 2.3.x.*
>
> I am facing a socket issue with CXF 2.3.0. My service request takes  
> around
> 10 minutes so I have set my socket time out on the client side. But  
> when the
> service sends response, I see the following exception on the client  
> side. No
> exception on the server.
>
> NOTE: This problem only occurs when WS-Security is engaged. On plain  
> web
> service endpoints it works fine even with large delays.
>
> Client uses Dispatch<Source> model.
>
> Aug 19, 2011 5:09:32 PM org.apache.cxf.phase.PhaseInterceptorChain
> doDefaultLogging
> WARNING: Interceptor for {
> http://ns.ca.com/catalyst/node}NodeX509#{http://cxf.apache.org/jaxws/dispatch 
> }Invokehas
> thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Could not send Message.
> .......
> Caused by: java.net.SocketException: SocketException invoking
> http://0.0.0.0:9900/nodex509/ModuleInstance: Unexpected end of file  
> from
> server
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native  
> Method)
> at
> sun 
> .reflect 
> .NativeConstructorAccessorImpl 
> .newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun 
> .reflect 
> .DelegatingConstructorAccessorImpl 
> .newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.mapException(HTTPConduit.java:1995)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.close(HTTPConduit.java:1980)
> at  
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java: 
> 56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java: 
> 662)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor 
> $ 
> MessageSenderEndingInterceptor 
> .handleMessage(MessageSenderInterceptor.java:62)
> ... 10 more
> Caused by: java.net.SocketException: Unexpected end of file from  
> server
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:766)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
> at
> sun 
> .net 
> .www 
> .protocol 
> .http.HttpURLConnection.getInputStream(HttpURLConnection.java:1064)
> at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java: 
> 373)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2102)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.handleResponse(HTTPConduit.java:2071)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.close(HTTPConduit.java:1925)
> ... 13 more
> [com.ca.ucf.remote.ws.client.WSModuleProxy] : Could not add SOAP  
> header
> elements
> javax.xml.ws.WebServiceException: Could not send Message.
> at org.apache.cxf.jaxws.DispatchImpl.mapException(DispatchImpl.java: 
> 244)
> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:339)
> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:218)
> at com.ca.garan10.test.RunTest.main(RunTest.java:11)
> Caused by: java.net.SocketException: SocketException invoking
> http://0.0.0.0:9900/nodex509/ModuleInstance: Unexpected end of file  
> from
> server
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native  
> Method)
> at
> sun 
> .reflect 
> .NativeConstructorAccessorImpl 
> .newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun 
> .reflect 
> .DelegatingConstructorAccessorImpl 
> .newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.mapException(HTTPConduit.java:1995)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.close(HTTPConduit.java:1980)
> at  
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java: 
> 56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java: 
> 662)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor 
> $ 
> MessageSenderEndingInterceptor 
> .handleMessage(MessageSenderInterceptor.java:62)
> at
> org 
> .apache 
> .cxf 
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 
> 247)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
> at org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java: 
> 300)
> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:332)
> ... 4 more
> Caused by: java.net.SocketException: Unexpected end of file from  
> server
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:766)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
> at
> sun 
> .net 
> .www 
> .protocol 
> .http.HttpURLConnection.getInputStream(HttpURLConnection.java:1064)
> at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java: 
> 373)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2102)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.handleResponse(HTTPConduit.java:2071)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.close(HTTPConduit.java:1925)
> ... 13 more
> Exception in thread "main" com.ca.ucf.api.UCFException: Could not send
> Message.
> at com.ca.garan10.test.RunTest.main(RunTest.java:11)
> Caused by: javax.xml.ws.WebServiceException: Could not send Message.
> at org.apache.cxf.jaxws.DispatchImpl.mapException(DispatchImpl.java: 
> 244)
> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:339)
> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:218)
> ... 2 more
> Caused by: java.net.SocketException: SocketException invoking
> http://0.0.0.0:9900/nodex509/ModuleInstance: Unexpected end of file  
> from
> server
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native  
> Method)
> at
> sun 
> .reflect 
> .NativeConstructorAccessorImpl 
> .newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun 
> .reflect 
> .DelegatingConstructorAccessorImpl 
> .newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.mapException(HTTPConduit.java:1995)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.close(HTTPConduit.java:1980)
> at  
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java: 
> 56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java: 
> 662)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor 
> $ 
> MessageSenderEndingInterceptor 
> .handleMessage(MessageSenderInterceptor.java:62)
> at
> org 
> .apache 
> .cxf 
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 
> 247)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
> at org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java: 
> 300)
> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:332)
> ... 4 more
> Caused by: java.net.SocketException: Unexpected end of file from  
> server
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
> at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:766)
> at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
> at
> sun 
> .net 
> .www 
> .protocol 
> .http.HttpURLConnection.getInputStream(HttpURLConnection.java:1064)
> at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java: 
> 373)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2102)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.handleResponse(HTTPConduit.java:2071)
> at
> org.apache.cxf.transport.http.HTTPConduit 
> $WrappedOutputStream.close(HTTPConduit.java:1925)
> ... 13 more
>
>
> Interestingly the logs reveal that the client actually got the SOAP
> response. But something on the CXF client side is closing the channel
> incorrectly!!!
>
> BADLY IN NEED OF A SOLUTION :(
>
> Thanks,
> Anil

---------------------------------------------
Freeman Fang

FuseSource
Email:ffang@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message