IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

Eclipse RCP SWT Java Chromium Embedded Framework CEF3


Sujet :

Eclipse Platform

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Eclipse RCP SWT Java Chromium Embedded Framework CEF3
    Bonjour,

    Je développe une application basée sur Eclipse RCP 3.8.2 à base de SWT... (Java 7.0_21/ Windows 7).

    Cette application affiche dans un tabfolder différentes vues qui contiennent un browser.

    Auparavant chaque browser était un browser SeaMonkey embarquant le moteur de rendu Gecko que nous avions adapté.

    Gecko ne pouvant plus être modifié, nous avons décidé d'utiliser, comme beaucoup un browser Chromium.

    Pour ce faire nous utilisons Chromium Embedded Framework 3 (CEF3), et nous intégrons l'exemple JCEF fourni avec la version 1916_1804.

    L'architecture est la suivante :

    Le browser javacef charge une DLL JCEF qui offre une API JNI et est elle même linkée avec la bibliothèque CEF (libcef_dll_wrapper et libcef).

    Le code Java communique avec la DLL via des handlers Java qui ont leur correspondant handler C++
    La DLL communique avec Java via des callbacks C++ qui appellent les méthodes adhoc.
    ......

    Le moteur CEF est initialisé une fois dans un thread indépendant (cefInitialize)
    Une boucle de message CEF est instanciée CefDoMessageLoopWork().

    Dans la mesure du possible, nous voudrions conserver le code de JCEF qui est fonctionnel et pouvoir l'intégrer à notre application.

    Or JCEF est basé sur AWT/OpenGL 2 et notre application sur SWT (bibliothèque jogl et gluegen-rt).

    Nous avons trouvé une façon d'intégrer le code à du SWT. Nous créons un Canvas SWT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Canvas swtCanvas = new Canvas(composite, SWT.EMBEDDED);
    swtCanvas.setLayout(new FillLayout());
    puis nous initialison GL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            GLProfile glprofile = GLProfile.getDefault();
            GLCapabilities glcapabilities = new GLCapabilities(glprofile);
     
            canvas_ = new GLCanvas(glcapabilities) {
                @Override
                public void paint(Graphics g) {
                    if (parent_ != null) {
                        createDevTools(parent_, clientHandler_, getWindowHandle(), isTransparent_, null);
                    } else {
                        createBrowser(clientHandler_, swtCanvas.handle, url_, isTransparent_, null, context_);
                    }
                    super.paint(g);
                }
            };
    Nous créons une Frame AWT et la mettons dans notre Canvas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Frame frame = SWT_AWT.new_Frame(swtCanvas);
    puis nous integrons le canvas GL
    Sur cette dernière instruction, notre application explose !
    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6e2a9829, pid=3400, tid=9040
    #
    # JRE version: 7.0_21-b11
    # Java VM: Java HotSpot(TM) Client VM (23.21-b01 mixed mode windows-x86 )
    # Problematic frame:
    # V [jvm.dll+0xa9829]
    #
    # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
    #
    # An error report file with more information is saved as:
    # C:\jcef_1916_1804\src\out\win32\Debug\hs_err_pid3400.log
    #
    # If you would like to submit a bug report, please visit:
    # http://bugreport.sun.com/bugreport/crash.jsp
    #
    [1211/153106:ERROR:stack_trace_win.cc(142)] SymInitialize failed: 87
    [1211/153106:FATAL:context.cc(309)] Check failed: OnInitThread().
    Error initializing symbols (87). Dumping unresolved backtrace:
    2A514061
    2A46383F
    2A2A43A3
    2A2A20AF
    2FDDC9AD
    2EE2DBD0
    2EE2D98F
    2EE21EC1
    2EE21E03
    77A699A0
    77A7D702
    Et j'avoue ne pas comprendre.

    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bonjour,

    C'est une erreur de JVM, donc essaye avec une mise à jour plus récente, ou sinon suit le lien indiqué dans l'erreur.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

Discussions similaires

  1. Export feature Eclipse RCP et Java Web Start
    Par xino972 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 07/10/2009, 15h44
  2. Réponses: 0
    Dernier message: 01/10/2009, 17h40
  3. [Télétravail] Développeur Java Eclipse RCP
    Par xino972 dans le forum Demandes
    Réponses: 0
    Dernier message: 13/04/2009, 10h43
  4. TabletPC, Java et Eclipse RCP ?
    Par Bobsinglar dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 05/05/2008, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo