Hi,
I've run into a similar issue before, if sever take a very long time
to process the request than the connection between client and server
become idle, the default idle time for jetty is 200 sec, but you
encountered this issue 43 seconds elapsed, so not sure it's same
issue, but I saw same exception like
Unexpected end of file from server
Anyway, take a look related discussion [1] & [2], to see if the
suggestion there(a longer maxIdleTime) can resolve your issue or not.
[1]http://cxf.547215.n5.nabble.com/Caused-by-java-net-SocketException-Unexpected-end-of-file-from-server-td4715340.html#a4851877
[2]http://cxf.547215.n5.nabble.com/CXF-retrying-an-operation-td5072484.html
Freeman
On 2012-5-4, at 上午6:48, jrmihalick wrote:
Hi,
I am running Apache CXF version 2.4.7 on both client and server.
The server
is running a JAXWS web service under Spring. We have been running in
production with versions of CXF (starting with version 2.2, I think)
for a
while, but recently we have been seeing sporadic exceptions like the
following at the end of this posting. We were seeing sporadic
problems
under prior versions of CXF, so I don't think the version has
anything to do
with it.
It seems that the server is perhaps prematurely closing the socket,
but I
have no idea why. I have confirmed that the connection is terminating
before my service method is even being reached. For a long time I
have had
the following timeout settings on the client side, which have fixed
other
timeout issues we had in the past:
((BindingProvider
)ace).getRequestContext().put("javax.xml.ws.client.connectionTimeout",
10*1000); // 10 secs
((BindingProvider
)ace).getRequestContext().put("javax.xml.ws.client.receiveTimeout",
5*60*1000); // 5 mins
I noticed on this particular failure, that the time between when the
webservice method was invoked and when the exception was raised on the
client side, about 43 seconds elapsed (most request/response round
trips
take on the order of 11 secs or less):
*Service method invoked*
2012/05/03 *2:43:20* INFO ACEClient - SENDING ACE Request:
ja301726c_jcaAceMsc_8781_2012.05.03-14.43.20.983
*Exception thrown*
2012/05/03 *2:44:03* org.apache.cxf.phase.PhaseInterceptorChain
doDefaultLogging
WARNING: Interceptor for
{http://pubs.acs.org/wsdl/jca/AceService}AceService#{http://pubs.acs.org/wsdl/jca/AceService
}evaluate
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
Unfortunately, there is no exception thrown on the server or any
helpful
logging. I have not yet tried to bump up logging on the server for
CXF
because I was hoping that I could get some advice here first on what I
should try. It looks like increasing the logging on server will
require me
to redeploy and I'm not too keen about bumping up the logging on
PROD unless
I need to.
*- Should I bump up the connectionTimeout on the client?
- The server processes dozens of requests a day with no problem. As a
temporary measure (maybe permanent), should I just implement some
retry
logic?*
Your suggestions are appreciated.
=================================
*Stack trace*
=================================
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:531)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:461)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:364)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:317)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:
88)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:
134)
at $Proxy53.evaluate(Unknown Source)
...
Caused by: java.net.SocketException: SocketException invoking
http://xxxxxx:8080/ace/aceService: 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:1438)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.close(HTTPConduit.java:1423)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:
56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:
649)
at
org.apache.cxf.interceptor.MessageSenderInterceptor
$
MessageSenderEndingInterceptor
.handleMessage(MessageSenderInterceptor.java:62)
... 12 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:1200)
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1549)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.handleResponse(HTTPConduit.java:1501)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.close(HTTPConduit.java:1409)
... 15 more
Error running ACEClient
javax.xml.ws.WebServiceException: Could not send Message.
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:
145)
at $Proxy53.evaluate(Unknown Source)
...
Caused by: java.net.SocketException: SocketException invoking
http://xxxxxx:8080/ace/aceService: 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:1438)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.close(HTTPConduit.java:1423)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:
56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:
649)
at
org.apache.cxf.interceptor.MessageSenderInterceptor
$
MessageSenderEndingInterceptor
.handleMessage(MessageSenderInterceptor.java:62)
at
org
.apache
.cxf
.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:461)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:364)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:317)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:
88)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:
134)
... 5 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:1200)
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1549)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.handleResponse(HTTPConduit.java:1501)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.close(HTTPConduit.java:1409)
... 15 more
--
View this message in context:
http://cxf.547215.n5.nabble.com/Suggestions-for-troubleshooting-SocketException-Unexpected-end-of-file-from-server-tp5684471.html
Sent from the cxf-user mailing list archive at Nabble.com.
---------------------------------------------
Freeman Fang
FuseSource
Email:[email protected]
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042