繁体   English   中英

java.net.ConnectException:连接超时:JAVA 中的连接错误和 .NET 中的相同逻辑工作正常

[英]java.net.ConnectException: Connection timed out: connect error in JAVA and same logic working fine in .NET

我发现了许多具有类似错误但没有任何帮助的文章(或者我找不到合适的文章)

问题的简要信息连接超时:尝试获取 Azure 令牌时观察到连接错误

  1. 相同的 java 代码在A环境下工作正常,在B环境下不工作

  2. 在B环境中,我能够从浏览器(IE)访问URL,能够从Postman获取令牌,也能够从.NET代码中获取令牌

最初我认为B环境中存在一些防火墙/代理问题,但是一旦从 Postman/>NET 代码开始工作,我不确定我现在必须检查什么

进入这个问题的可能性是什么? 在这种情况下我们需要从哪里开始调试?

堆栈跟踪

{java.net.ConnectException:连接超时:连接

            at java.net.DualStackPlainSocketImpl.connect0(Native Method)

            at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)

            at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

            at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

            at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)

            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

            at java.net.Socket.connect(Socket.java:589)

            at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)

            at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)

            at sun.net.NetworkClient.doConnect(NetworkClient.java:180)

            at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)

            at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)

            at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)

            at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)

            at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)

            at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138)

            at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)

            at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)

            at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1316)

            at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1291)

            at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)}

它从“connectResult = connect0(nativefd, address, port)”失败。 无法从该方法进一步调试。

在 java 级别使用完整的调试选项,最后成功的消息低于然后我们遇到超时问题

最好的:使用 url 创建新的 HttpsClient: https://login.microsoftonline.com/567abcde-3214-4grr-8e51-414b68ebb796/oauth2/token2.

和代理:直接连接超时:-1

谁能建议我们需要从哪里开始调查?

如果没有其他问题,连接超时也可能是由防火墙引起的。 您确定您的 JDK/JRE 包含在用于传出连接的防火墙例外中吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM