无法在纯OSGi环境中加载jxbrowser

时间:2016-03-18 11:25:40

标签: jxbrowser

我一直在使用带有试用许可证的jxbrpowser 6.2。尝试在OSGi环境中加载它会产生以下错误:

Exception in thread "JavaFX Application Thread"     java.lang.ExceptionInInitializerError
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.getDefault(Unknown Source)
at com.teamdev.jxbrowser.chromium.BrowserContext.<init>(Unknown Source)
   (...)
    at com.sun.glass.ui.win.WinApplication$$Lambda$39/30523883.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)
Caused by: com.teamdev.jxbrowser.chromium.internal.ChromiumExtractorException: Failed to extract chromium binaries into C:\Users\Vladimir\AppData\Local\Temp\jxbrowser-chromium-43.0.2357.52.6.2
at com.teamdev.jxbrowser.chromium.internal.ChromiumExtractor.extract(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.<init>(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.create(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC$a.<clinit>(Unknown Source)
... 15 more
Caused by: java.lang.IllegalArgumentException: The /chromium-windows.zip resource cannot be found in JAR files.
at com.teamdev.jxbrowser.chromium.internal.ZIPExtractor.extract(Unknown Source)
at com.teamdev.jxbrowser.chromium.internal.e.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 19 more

我可以在非OSGi环境中以及在已经提取资源的OSGi环境中成功加载jxbrowser。

有没有办法让jxbrowser成功从jar中提取资源?

1 个答案:

答案 0 :(得分:0)

看起来你没有为JxBrowser提供正确的OSGI包。据我所知,jxbrowser支持OSGI包分发,您只需将其安装到OSGI容器中即可。

或者,您可以创建自己的捆绑包,该捆绑包仅导出JxBrowser公共API,但包含您需要的JxBrowser库。您可以使用Felix捆绑插件自动执行此操作,例如http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html

为了使这样的捆绑工作,你需要在bundle激活器中初始化一个临时的浏览器实例(只是创建一个浏览器组件)。因此,当在OS​​Gi容器中安装bundle时,将提取chrome二进制文件。