我目前正在开发一个应用程序,我需要启动多个JxBrowser。 在这种情况下,当我使用JxBrowser运行我的应用程序时,我尝试充分利用我的CPU使用率,100% 和内存消耗约85%。 然后我开始使用Java Swing UI线程一次打开一个屏幕。在第一次完成屏幕完成之前, 我创建另一个屏幕,导致以下错误。
com.teamdev.jxbrowser.chromium.BrowserException: Failed to load 'about:blank' web page within 120 seconds.
2017-04-13 15:05:23 257 ->[AWT-EventQueue-0]--[DEBUG]--[System]--com.teamdev.jxbrowser.chromium.BrowserException: Failed to load 'about:blank' web page within 120 seconds.
at com.teamdev.jxbrowser.chromium.Browser.b(Unknown Source)
2017-04-13 15:05:23 258 ->[AWT-EventQueue-0]--[DEBUG]--[System]-- at com.teamdev.jxbrowser.chromium.Browser.b(Unknown Source)
at com.teamdev.jxbrowser.chromium.Browser.<init>(Unknown Source)
2017-04-13 15:05:23 258 ->[AWT-EventQueue-0]--[DEBUG]--[System]-- at com.teamdev.jxbrowser.chromium.Browser.<init>(Unknown Source)
at com.teamdev.jxbrowser.chromium.Browser.<init>(Unknown Source)
2017-04-13 15:05:23 258 ->[AWT-EventQueue-0]--[DEBUG]--[System]-- at com.teamdev.jxbrowser.chromium.Browser.<init>(Unknown Source)
...
导致错误如此成问题的原因是我使用GUI线程来创建浏览器,因此, 我的GUI线程被锁定120秒,然后被释放。并将显示上述错误消息。
目前,我正在使用一台计算机,其中os = windows 7,i5 cpu,8gb ram。 并且JxBrowser = 6.6,升级到6.13也无法解决问题。 另外,我使用轻量级而不是高重量的BrowserType来与JInternalFrame集成。
在这种情况下,当我正常打开我的应用程序时,一个接一个地打开3个jxBrowser。它按预期工作。 有没有人知道发生了什么?
我已经研究了一段时间,并看到someone saying that there is a deadlock problem when using Mac OS
我尝试添加VM参数java.ipc.external=true
,但它没有帮助。
有没有人知道,发生了什么? 谢谢。
答案 0 :(得分:2)
我想你创建了几个Browser
个实例,其中不同的BrowserContext
实例配置为使用相同的Chromium配置文件目录。请注意,Chromium不允许同时在不同的BrowserContext
实例或进程中使用相同的配置文件目录。它可能会导致不同的意外问题,包括在Chromium引擎中冻结甚至崩溃。
在JxBrowser 6.14中,我们添加了验证配置文件目录的代码,并在该目录已被另一个BrowserContext
实例或进程使用时抛出异常。您可以尝试6.14版本。它将帮助您确定此问题的根本原因。