Java.net.SocketException: 连接或出站已关闭
Java.net.SocketException: Connection or outbound has closed
我在调用外部沙箱时看到了这个问题。我发现 java 版本正在发生这种情况。有没有人见过这个问题并解决了它?
这种情况会间歇性发生。
沙盒returns 200 并在解析响应时抛出错误
java 版本:1.8.0_275 + 沙箱调用 => 不工作
java 版本:1.8.0_202 + 沙箱调用 => 运行良好
使用改造 2.3.0,Okhttp 3.8.0
java.net.SocketException: Connection or outbound has closed
at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:967)
at okio.Okio.write(Okio.java:79)
at okio.AsyncTimeout.write(AsyncTimeout.java:180)
at okio.RealBufferedSink.flush(RealBufferedSink.java:216)
at okhttp3.internal.http2.Http2Writer.rstStream(Http2Writer.java:152)
at okhttp3.internal.http2.Http2Connection.writeSynReset(Http2Connection.java:315)
at okhttp3.internal.http2.Http2Stream.close(Http2Stream.java:226)
at okhttp3.internal.http2.Http2Stream.cancelStreamIfNecessary(Http2Stream.java:454)
at okhttp3.internal.http2.Http2Stream$FramingSource.close(Http2Stream.java:428)
at okio.ForwardingSource.close(ForwardingSource.java:43)
at okhttp3.internal.http2.Http2Codec$StreamFinishingSource.close(Http2Codec.java:199)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.InflaterSource.close(InflaterSource.java:126)
at okio.GzipSource.close(GzipSource.java:182)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.ForwardingSource.close(ForwardingSource.java:43)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.RealBufferedSource.close(RealBufferedSource.java:443)
at sun.nio.cs.StreamDecoder.implClose(StreamDecoder.java:378)
at sun.nio.cs.StreamDecoder.close(StreamDecoder.java:193)
at java.io.InputStreamReader.close(InputStreamReader.java:199)
at okhttp3.ResponseBody$BomAwareReader.close(ResponseBody.java:258)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._closeInput(ReaderBasedJsonParser.java:193)
at com.fasterxml.jackson.core.base.ParserBase.close(ParserBase.java:368)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1622)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:119)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:218)
at retrofit2.OkHttpCall.onResponse(OkHttpCall.java:112)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at au.com.auspost.utils.MDCUtils.lambda$mdcRunnable[=11=](MDCUtils.java:24)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
将 retrofit2 库迁移到版本 2.8.1 后,此问题已得到解决。迁移到最新的retrofit2库后,我们遇到了认证验证问题。我们已通过生成新证书解决了认证问题。
我在调用外部沙箱时看到了这个问题。我发现 java 版本正在发生这种情况。有没有人见过这个问题并解决了它? 这种情况会间歇性发生。
沙盒returns 200 并在解析响应时抛出错误
java 版本:1.8.0_275 + 沙箱调用 => 不工作
java 版本:1.8.0_202 + 沙箱调用 => 运行良好
使用改造 2.3.0,Okhttp 3.8.0
java.net.SocketException: Connection or outbound has closed
at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:967)
at okio.Okio.write(Okio.java:79)
at okio.AsyncTimeout.write(AsyncTimeout.java:180)
at okio.RealBufferedSink.flush(RealBufferedSink.java:216)
at okhttp3.internal.http2.Http2Writer.rstStream(Http2Writer.java:152)
at okhttp3.internal.http2.Http2Connection.writeSynReset(Http2Connection.java:315)
at okhttp3.internal.http2.Http2Stream.close(Http2Stream.java:226)
at okhttp3.internal.http2.Http2Stream.cancelStreamIfNecessary(Http2Stream.java:454)
at okhttp3.internal.http2.Http2Stream$FramingSource.close(Http2Stream.java:428)
at okio.ForwardingSource.close(ForwardingSource.java:43)
at okhttp3.internal.http2.Http2Codec$StreamFinishingSource.close(Http2Codec.java:199)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.InflaterSource.close(InflaterSource.java:126)
at okio.GzipSource.close(GzipSource.java:182)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.ForwardingSource.close(ForwardingSource.java:43)
at okio.RealBufferedSource.close(RealBufferedSource.java:455)
at okio.RealBufferedSource.close(RealBufferedSource.java:443)
at sun.nio.cs.StreamDecoder.implClose(StreamDecoder.java:378)
at sun.nio.cs.StreamDecoder.close(StreamDecoder.java:193)
at java.io.InputStreamReader.close(InputStreamReader.java:199)
at okhttp3.ResponseBody$BomAwareReader.close(ResponseBody.java:258)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._closeInput(ReaderBasedJsonParser.java:193)
at com.fasterxml.jackson.core.base.ParserBase.close(ParserBase.java:368)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1622)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:119)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:218)
at retrofit2.OkHttpCall.onResponse(OkHttpCall.java:112)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at au.com.auspost.utils.MDCUtils.lambda$mdcRunnable[=11=](MDCUtils.java:24)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
将 retrofit2 库迁移到版本 2.8.1 后,此问题已得到解决。迁移到最新的retrofit2库后,我们遇到了认证验证问题。我们已通过生成新证书解决了认证问题。