Apache CXF端点请求给出SocketException:当soap包络长度很大(> 5kb)时连接读取超时

时间:2016-10-19 05:18:04

标签: soap apache-camel cxf apache-servicemix

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)[:1.8.0_51]
at java.net.SocketInputStream.read(SocketInputStream.java:141)[:1.8.0_51]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)[:1.8.0_51]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)[:1.8.0_51]
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)[:1.8.0_51]
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)[:1.8.0_51]
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)[:1.8.0_51]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1535)[:1.8.0_51]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)[:1.8.0_51]
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)[:1.8.0_51]
at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:332)[180:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.do

尝试配置http管道,仍然得到相同的异常..

<http-conf:conduit name="{http://apache.org/hello_world_soap_http}SoapPort.http-conduit">
    <http-conf:client Connection="Keep-Alive"
               Connectiontimeout = 0 receivetimout =0 
                      MaxRetransmits="1"
                      AllowChunking="false" />
  </http-conf:conduit>

尝试在http-conf:conduit

中增加接收超时和连接超时
 <http-conf:client Connection="Keep-Alive"
               Connectiontimeout = 60000 receivetimout =60000 
                      MaxRetransmits="1"
                      AllowChunking="false" />
  </http-conf:conduit>

但仍然没有工作,但得到了socketexception:连接重置

任何人都可以通过解释socketexception的'read tim out'和'connection reset'错误消息之间的区别来帮助吗?

当通过soap客户端应用程序(回旋镖)发布相同的请求时,它可以正常工作

我很久以前就被这件事搞砸了。请任何人帮助解决此问题。

0 个答案:

没有答案