Connection reset谁有办法处理?

gong0585 2017-08-31 04:38:52
网上能查的方法都用过了,比如
linux服务增加下面的内容
#vi /etc/sysctl.conf
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_max_syn_backlog=4096
错误如下:
2017-08-24 03:00:04.872 INFO 22781 --- [pool-7-thread-1] o.apache.http.impl.execchain.RetryExec : Retrying requs ->http://www.xx.cn:80
java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:118)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:124)
at org.apache.http.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:136)
at org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:167)
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113)
at org.apache.http.entity.mime.content.FileBody.writeTo(FileBody.java:121)
at org.apache.http.entity.mime.AbstractMultipartForm.doWriteTo(AbstractMultipartForm.java:134)
at org.apache.http.entity.mime.AbstractMultipartForm.writeTo(AbstractMultipartForm.java:157)
at org.apache.http.entity.mime.MultipartFormEntity.writeTo(MultipartFormEntity.java:113)
at org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:156)
at org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:162)
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:238)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
...全文
1382 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tenglongs 2020-05-16
  • 打赏
  • 举报
回复
请问最后又结论吗 我也遇到这个问题
gong0585 2017-08-31
  • 打赏
  • 举报
回复
CloseableHttpClient httpclient = HttpClientBuilder.create().setDefaultRequestConfig(defaultRequestConfig).build(); HttpPost httppost = new HttpPost(transDto.getWebSiteUrl()); 问题肯定出在这里,就是不知道是什么原因。 MultipartEntityBuilder build = MultipartEntityBuilder.create().setMode(HttpMultipartMode.BROWSER_COMPATIBLE); for(int i = 0 ; i < fileList.size(); i++){ FileBody filebody = new FileBody(fileList.get(i), ContentType.create("multipart/form-data", "UTF-8")); build.addPart("file"+i, filebody); } StringBody userId = new StringBody(URLEncoder.encode(JSON.toJSONString(transDto), "utf-8"), ContentType.create( "text/plain", Consts.UTF_8)); build.addPart("data", userId); HttpEntity reqEntity = build.setCharset(CharsetUtils.get("UTF-8")).build(); httppost.setEntity(reqEntity); Logger.getLogger(HttpUploadUtils.class.getName()).log(Level.INFO, "执行的请求:" + httppost.getRequestLine()); CloseableHttpResponse response = httpclient.execute(httppost);
gong0585 2017-08-31
  • 打赏
  • 举报
回复
链接时间改再大也无效 int timeout = 60;//这个要弄长点 RequestConfig defaultRequestConfig = RequestConfig.custom() .setSocketTimeout(timeout * 1000) .setConnectTimeout(timeout * 1000) .setConnectionRequestTimeout(timeout * 1000) .build();
gong0585 2017-08-31
  • 打赏
  • 举报
回复
下面的方法无效 浏览器发送请求到servlet,servlet处理时间太久,所以导致chrome浏览器出现ERR_CONNECTION_RESET错误 解决方案: 在相应servlet执行最后添加一句代码: Thread.currentThread().join(); 表示必须在当前线程执行完之后才返回页面到浏览器。
pilnyun335857183 2017-08-31
  • 打赏
  • 举报
回复
你这文件上传走的是HTTP啊,最大的可能感觉是文件太大导致http传输超时;你看看你的http调用里面timeout值是怎么设置的,这个值在http里面是传输时间不是连接超时设置,值改大点看看。
gong0585 2017-08-31
  • 打赏
  • 举报
回复
使用TCP短链接无效。 //最后的解决方案是客户端和服务器统一使用TCP短连接 httppost.setProtocolVersion(HttpVersion.HTTP_1_0); httppost.addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
gong0585 2017-08-31
  • 打赏
  • 举报
回复
两个服务器通信上传文件 就报这个错误,换台机器同样代码就没问题。想不通了。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧