JavaFX WebView无法加载某些站点
我正在尝试使用JavaFX的WebView来加载这个站点 ,但我得到的只是一个空白屏幕。 WebView在其他网站上运行得非常好; 它在ACID3上获得100/100并加载其他HTTPS站点而没有任何问题。
我也找不到任何特别错误的网站。 它具有由适当的CA签名的正确,未过期的证书,并且SSL实验室报告B等级 。 我尝试了所有主流浏览器,没有人报告任何证书或SSL相关问题; 该网站渲染所有这些都很好。
任何帮助将不胜感激。 即使是一个简单的“是的网站也为我打破了”或“这里没有问题”会有很大帮助。
我在Windows 8.1 64位上使用Java SDK 1.8.0_45-b14。
原因是java.lang.Throwable: SSL handshake failed
一个解决方案可以是:从这篇文章https://stackoverflow.com/a/5671038/1032167 :
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,大概类似的情况: JavaFx Webview JDK 8无法加载自签名证书
我怎么知道这是SSL handshake failed
webView.getEngine().getLoadWorker().stateProperty().addListener( new ChangeListener() { public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) { System.out.println(webView.getEngine().getLoadWorker().exceptionProperty()); ...
还向VMOption添加了-Djavax.net.debug=all
添加
URL-Loader-1,处理exception:javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException:PKIX路径构建失败:
sun.security.provider.certpath.SunCertPathBuilderException:
无法找到所请求目标的有效证书路径