JavaFX WebView无法加载页面

时间:2018-09-08 11:33:44

标签: java swing javafx java-8 javafx-webview

我正在尝试打开“ engine.load(” https://login.microsoftonline.com“);”;在JavaFX WebView中。

使用 jdk1.8.0_161 时,页面已加载。使用 jdk1.8.0_181 时,页面不会加载。它显示空窗口,不返回任何错误:     engine.getLoadWorker()。exceptionProperty()为空。

您是否知道Java新版本更新中可能发生的更改?我在Java 10最新版本上进行了测试,并且该页面也未加载。 该代码适用于JDK8.161和JDK9.0.4,但不适用于JDK8.181和JDK10.0.2

这是我创建的示例应用程序的源代码:

android:src

enter image description here

1 个答案:

答案 0 :(得分:1)

事实证明,任何网络问题(DNS /连接)都可能导致错误,并且负载不会引发任何适当的异常。 好消息是,如果您替换.load(url)调用,至少您会在日志中看到问题。

在替换时,我的意思是将网站分别加载到字符串中

private static String getData(String address) throws Exception {
    URL page = new URL(address);
    StringBuffer text = new StringBuffer();
    HttpURLConnection conn = (HttpURLConnection) page.openConnection();
    conn.connect();
    try (InputStreamReader in = new InputStreamReader(
            (InputStream) conn.getContent())) {
        BufferedReader buff = new BufferedReader(in);
        String line;
        do {
            line = buff.readLine();
            text.append(line + "\n");
        } while (line != null);
        return text.toString();
    } finally {
        conn.disconnect();
    }
}

并替换.load:

    //engine.load("https://login.microsoftonline.com");
    engine.loadContent(getData("https://login.microsoftonline.com"));

当然,应该捕获并记录异常。 (有趣的是,引用的资源(images / js / css任何文件)也将以这种方式很好地加载。)