Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 定期加载网页_Java_Javafx_Scheduledexecutorservice_Javafx Webengine - Fatal编程技术网

Java 定期加载网页

Java 定期加载网页,java,javafx,scheduledexecutorservice,javafx-webengine,Java,Javafx,Scheduledexecutorservice,Javafx Webengine,我正在用java开发一个机器人,我需要它定期加载一个包含所有javascript计算的网页。为此,我使用ScheduledExecutorService和JavaFXWebEngine。我的定时服务运行得很好,已经用日志测试过了,但是一旦我用WebEngine添加页面加载,它会突然停止定时服务 在服务之前,我使用不同的WebEngine对象来获取其中使用的URL。那个代码打印我一次“已执行”,然后停止。但是如果我删除带有“engine.load(…”的行,它将每隔5秒打印一次执行的结果 以下是我

我正在用java开发一个机器人,我需要它定期加载一个包含所有javascript计算的网页。为此,我使用ScheduledExecutorService和JavaFXWebEngine。我的定时服务运行得很好,已经用日志测试过了,但是一旦我用WebEngine添加页面加载,它会突然停止定时服务

在服务之前,我使用不同的WebEngine对象来获取其中使用的URL。那个代码打印我一次“已执行”,然后停止。但是如果我删除带有“engine.load(…”的行,它将每隔5秒打印一次执行的结果

以下是我的服务代码:

    ScheduledExecutorService updateService = Executors.newScheduledThreadPool(5);
    WebEngine engine = this.updateEngine;

    ScheduledFuture scheduledFuture = 
            updateService.scheduleWithFixedDelay(new Runnable(){
                @Override
                public void run() { 
                    System.out.println("Executed!");
                    Maj job = jobsCycle.getNextMaj();


                    engine.load(job.getURL());

                }
            },
            0,
            5,
            TimeUnit.SECONDS
            );

感谢您的帮助,如果您不知道如何解决,我愿意接受任何其他解决方案。

非常感谢您的帮助-_-

最后,我通过使用Selenium而不是JavaFXWebEngine解决了这个问题。这稍微慢了一点,但是当加载带有HtmlUnit的网页时,js加载和呈现是自动管理的

和平