Java 1.8 u191-连接失败

时间:2018-12-04 09:37:20

标签: java windows oracle https

在Windows 10 x64计算机上将Java版本从Java 1.8u161升级到1.8u191之后,我遇到了几个问题。 经过一些调试后,我想出了以下代码片段来演示它。 如果运行更新161,一切正常。尝试获取InputStream时,使用更新191运行相同的代码部分会导致连接超时。 我尝试使用更新161安装的证书,该证书也没有帮助。 在访问InputStream之前运行启用了网络调试(-Djavax.net.debug = all)的应用程序并没有太大的区别(当然某些证书和密码是不同的)。 似乎未在更新191下执行SSL握手(更新161有相应的调试输出)。 有人可以确认这一点或告诉我我在做什么错吗?

package example;

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import java.io.InputStream;

public class ConnectionTimeout {

  public static void main(String[] args) throws Exception {

    System.err.println("java.version=" + System.getProperty("java.version"));

    HttpURLConnection.setFollowRedirects(false);

    URL           url        = new URL("https://heise.de");
    URLConnection connection = url.openConnection();
    System.err.println("connectiontype: " + connection.getClass().getName());

    // timeout on 1.8-191; not on 1.8-161
    InputStream instream = connection.getInputStream();
    System.err.println("instream:" + instream.getClass().getName());
    instream.close();

  }

}

根据要求,这是一个堆栈跟踪:

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
    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:666)
    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:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    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:1156)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
    at example.ConnectionTimeout.main(ConnectionTimeout.java:24)

0 个答案:

没有答案