cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: Exception(Unexpected end of file from server) of CXF
Date Tue, 12 Jul 2011 03:48:59 GMT
On 7/8/11 6:34 PM, xuhb wrote:
> Recently I always encounter a "Unexpected end of file from server" Exception at CXF client
side.  it seems this exception is caused by  the CXF Serverside has unexcepted release the
http connection ;
>
>   I tried some effort to to use a simple test case to regenerate such a exception; Following
is a simple test case which will cause such a exception.
>
> keypoint of the test case:
> 1)MTOM enabled;
> 2)Using Jetty-Transport at serverside, and using SUN JDK's http client at client side;
> 3)the service logical is simple: first consume all attachment and close it; then wait
for a long time (about 10 miniutes);
> In practice, there is no such a service which will block for so long time, but in the
simple test case, I must use such a long time to force such a exception occurs;
>
What kinds of response does your client expect?

> 4)set the client side 's receiveTime to a infinite time(almost) to avoid receive time
out exception. then the client will block to wait service , but after about 7 minutes a ""Unexpected
end of file from server"  Exception will raised at client side;
>
> Other key points I have tried:
> 1)At first I guess maybe this is the jetty-server's problem: I guess it will release
connection  silently while the servlet-handler execute too long time;
>    But unfortunately it 's not so .
>
> Because I tried another simple test case, which doesnt generate such a exception . The
only difference is: there is no attachment in xml data; Also the service will wait a very
long time( 10minutes, 20minutes I have tried) . And the client will blocking util service
returned;
>

Did you have a chance to catch the under layer TCP transport between the 
server and client. It's easy to tell the difference of your two test 
case if you catch the packages between the client and server.
> Ps: the stack of the Exception is :
>
> org.apache.cxf.interceptor.Fault: Could not send Message.
>   at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
> ...
> Caused by: java.net.SocketException: SocketException invoking http://localhost:9000/service/moreattachmentsrpcliteral:
Unexpected end of file from server
> ...
>   at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1385)
>   at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1370)
> ...
> Caused by: java.net.SocketException: Unexpected end of file from server
>   at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:763)
>   at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626)
>   at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:760)
>   at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626)
>   at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:983)
>   at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:367)
>   at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1490)
>   at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1448)
>   at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1356)
>   ... 35 more


-- 
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
          http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang

Mime
View raw message