【发布时间】:2017-09-24 01:53:49
【问题描述】:
想发布一个巨大的 JSON 对象,但是当我尝试时出现此错误:
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:126)
at org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:162)
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:115)
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:122)
at org.apache.http.entity.StringEntity.writeTo(StringEntity.java:169)
at org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:158)
at org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:162)
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:237)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:122)
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)
at com.os.util.helper.microServiceHelper.AbstractMicroServiceHelper.getResultFromMicroServices(AbstractMicroServiceHelper.java:196)
at com.os.util.helper.microServiceHelper.IsheetVersionMicroserviceImpl.bulkInsertUpdateIsheetVersion(IsheetVersionMicroserviceImpl.java:75)
at com.os.gfnactions.isheet.IsheetVersionPutInMicroserviceThread.run(IsheetVersionPutInMicroserviceThread.java:36)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
套接字异常
当我通过 HttpClient Post 请求发送一个大而重的 json 时,它会给我一个以下错误。
所以如何解决以下错误我正在研究所有发布的问题。但没有为我的错误找到合适的解决方案。
仅供参考:基本上我们在服务器端使用 spring boot api。我们从 java 中的应用程序调用该 api。
你能请任何人帮我解决以下错误吗??
1) 如何在java中从客户端发送?
2) 如何在java中获取服务器端的json?
【问题讨论】:
-
我认为发布大文本不是个好主意。我建议你应该拆分这个 json 并为此应用一些分页。
-
您是否尝试增加超时时间?
-
@lukassz 你有没有其他方法不拆分 json,因为我们已经将 json 拆分为小 json 实际上原始 json 大小几乎是 50 MB。
-
@pvpkiran 我们从不使用超时。如何使用超时??? .它是如何工作的??
-
正如@lukassz 所说,发送大文件不是一个好主意。但是您仍然可以检查它以增加超时。 stackoverflow.com/questions/3000214/…可以设置不同类型的超时时间
标签: spring api spring-boot java