JavaFX WebView 无法加载某些网站
JavaFX WebView can't load certain sites
我正在尝试使用 JavaFX 的 WebView 来加载此 site,但我得到的只是一个空白屏幕。 WebView 在其他站点上运行良好;它在 ACID3 上获得 100/100 并加载其他 HTTPS 站点而没有任何问题。
我也找不到该网站有什么特别的问题。它有一个由适当的 CA 签署的适当的、未过期的证书,以及 SSL 实验室报告 a B grade。我尝试了所有主流浏览器,none 报告任何证书或 SSL 相关问题;该网站在所有这些上都呈现良好。
如有任何帮助,我们将不胜感激。即使是简单的 "yeah the site's broken for me too" 或 "no problems here" 也会有很大帮助。
我在 Windows 8.1 64 位上使用 Java SDK 1.8。0_45-b14。
原因是java.lang.Throwable: SSL handshake failed
一个解决方案可以是:从这个post :
TrustManager trm = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {return null;}
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
还有post,大概类似情况:
我怎么知道它是 SSL handshake failed
webView.getEngine().getLoadWorker().stateProperty().addListener(
new ChangeListener<Worker.State>() {
public void changed(ObservableValue ov,
Worker.State oldState, Worker.State newState) {
System.out.println(webView.getEngine().getLoadWorker().exceptionProperty());
...
还添加 -Djavax.net.debug=all
到 VMOption 显示
URL-Loader-1, handling exception: javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
我正在尝试使用 JavaFX 的 WebView 来加载此 site,但我得到的只是一个空白屏幕。 WebView 在其他站点上运行良好;它在 ACID3 上获得 100/100 并加载其他 HTTPS 站点而没有任何问题。
我也找不到该网站有什么特别的问题。它有一个由适当的 CA 签署的适当的、未过期的证书,以及 SSL 实验室报告 a B grade。我尝试了所有主流浏览器,none 报告任何证书或 SSL 相关问题;该网站在所有这些上都呈现良好。
如有任何帮助,我们将不胜感激。即使是简单的 "yeah the site's broken for me too" 或 "no problems here" 也会有很大帮助。
我在 Windows 8.1 64 位上使用 Java SDK 1.8。0_45-b14。
原因是java.lang.Throwable: SSL handshake failed
一个解决方案可以是:从这个post :
TrustManager trm = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {return null;}
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
还有post,大概类似情况:
我怎么知道它是 SSL handshake failed
webView.getEngine().getLoadWorker().stateProperty().addListener(
new ChangeListener<Worker.State>() {
public void changed(ObservableValue ov,
Worker.State oldState, Worker.State newState) {
System.out.println(webView.getEngine().getLoadWorker().exceptionProperty());
...
还添加 -Djavax.net.debug=all
到 VMOption 显示
URL-Loader-1, handling exception: javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target