【问题标题】:spring boot micro-service giving: java.net.SocketException: Connection resetspring boot 微服务给出:java.net.SocketException: Connection reset
【发布时间】:2019-11-05 16:53:06
【问题描述】:

我们有一个使用 Sprig Boot 开发的微服务。该微服务将调用外部 Rest API。这部署在多台服务器上。在其中一台服务器上,我们看到以下错误

at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:743)
        at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:669)
        at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:413)

Caused by: javax.net.ssl.SSLException: Connection reset
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:127)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:320)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:258)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:137)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
        ....
        Suppressed: java.net.SocketException: Broken pipe (Write failed)
                at java.base/java.net.SocketOutputStream.socketWrite0(Native Method)
                at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110)
                at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150)
                at java.base/sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
                at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:351)
....
Caused by: java.net.SocketException: Connection reset
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:448)
        at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:165)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)

在其他服务器上,相同的服务运行良好。

我们在此服务器和其他服务器上尝试了 traceroute,但两者的输出相同。我们重新启动了服务,但同样的错误。

关于我们可以调试什么并找到问题所在的任何指针?

【问题讨论】:

  • Caused by: javax.net.ssl.SSLException: Connection reset 让我认为这是一个证书问题,请确认您在一台无法正常工作的服务器上拥有有效证书。

标签: java spring-boot ssl


【解决方案1】:

该线程可以在该服务重新启动后关闭,它工作正常。

【讨论】:

    猜你喜欢
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 2022-01-08
    • 2020-09-27
    • 2019-02-20
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多