2016-03-18 2 views
0

J'ai utilisé jxbrpowser 6.2 avec une licence d'évaluation. Essayer de le charger dans OSGi génère l'environnement erreur suivant:Echec du chargement de jxbrowser dans l'environnement OSGi standard

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 

Je peux charger avec succès jxbrowser dans l'environnement non OSGi, ainsi que dans un environnement OSGi lorsque les ressources sont déjà extraites.

Existe-t-il un moyen de faire en sorte que jxbrowser extrait avec succès les ressources du fichier jar?

Répondre

0

Il semblerait que vous n'ayez pas de bundle OSGI correct pour JxBrowser. Pour autant que je sache que jxbrowser supporte la distribution de paquets OSGI, vous pouvez simplement l'installer dans votre conteneur OSGI.

Vous pouvez également créer votre propre ensemble avec lequel exporter uniquement l'API publique JxBrowser, mais qui contient les bibliothèques JxBrowser dont vous avez besoin. Vous pouvez l'automatiser avec le plugin Felix bundle par exemple http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html

Pour qu'un tel bundle fonctionne, vous devrez initialiser une instance de navigateur temporaire (créez simplement un composant de navigateur) dans l'activateur de bundle. Pour que les fichiers binaires de chrome soient extraits lorsque bundle est installé dans votre conteneur OSGi.