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

GWT et Vaadin Java Discussion :

Tutorial / Projet avec GWT + Hibernate


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Par défaut Tutorial / Projet avec GWT + Hibernate
    Bonjour à tous,

    Voici deux jours que je planche sur un projet GWT, je dois intégrer Hibernate pour gérer la persistance de mes objets en BDD.
    J'ai donc tenté d'intégrer normalement Hibernate à un simple projet GWT avec une base de données MySQL test avec une table via ce tutoriel en prenant comme base ce tutoriel pour une application n'utilisant pas GWT :
    http://defaut.developpez.com/tutorie...pse/hibernate/ (déjà testé avec succès sur une architecture de base Java)

    J'ai donc essayé de transposer ce tutoriel en GWT et je n'ai plus la possibilité d'utiliser la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session session = HibernateUtil.currentSession();
    J'ai donc recherché la cause et le problème semble plus compliqué que prévu, la plupart des tutos que j'ai vu s'orientent vers des architectures assez complexes. J'ai également vu qu'il y avait un composant RequestFactory intégré aux dernières version de GWT qui permettrait de contourner le problème mais je n'ai pas trouvé de tuto probant à ce sujet.

    Existe il un moyen plus simple et fonctionnel pour intégrer Hibernate à un projet GWT ?

    Merci d'avance !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    A quel endroit utilises-tu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session session = HibernateUtil.currentSession();
    ? Par endroit j'entends quel package? quel partie de l'application Client/serveur? As-tu une trace?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Par défaut
    Merci de ta réponse, voici une capture d'écran de la structure de mon projet :



    Le problème semble venir de la classe HibernateUtil, dans mon projet de démarrage GWT, j''instancie un object TContact, et je souhaite l'enregistrer en base via la méthode Enregistrer de cette classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void Enregistrer() {
    		try {
    			Session session=HibernateUtil.currentSession();
    			session.saveOrUpdate(this);
    			session.flush();
    		} catch (Exception e) {
    		e.printStackTrace();
    		}
    }

    Et voici le message d'erreur sur la méthode Enregistrer :

    onModuleLoad() threw an exception

    Exception while loading module com.test.client.TestHibernateGWT. See Development Mode for details.
    java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396) at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:193) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:510) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352) at java.lang.Thread.run(Unknown Source)

    Caused by: java.lang.NoClassDefFoundError: net/sf/hibernate/HibernateException at com.test.shared.TContact.Enregistrer(TContact.java:48) at com.test.client.TestHibernateGWT.onModuleLoad(TestHibernateGWT.java:28) ... 9 more

    Caused by: java.lang.ClassNotFoundException: net.sf.hibernate.HibernateException at com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1054) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 11 more
    Tu aurais éventuellement une piste ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    Tu utilises une méthode "Serveur" dans ta partie "Cliente". Attention, en GWT ce n'est pas par ce que tu écris est du Java que ce qui va être compilé puis exécuté est du Java.

    http://code.google.com/webtoolkit/do...Emulation.html

    Il te faut donc un package com.test.server qui va contenir tout ce qui s'exécute sur ton serveur (tomcat, Jetty etc..). Grosso modo ce package va contenir des servlets GWT de type RemoteServlet

    Attention dans ta trace il y a aussi une information concernant des dépendances manquantes d'hibernante.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Par défaut
    Merci, je me suis finalement orienté vers l'approche DTO du tutoriel Google :

    http://code.google.com/intl/fr/webto...hibernate.html

    L'intégration fonctionne assez bien, même si la mise en œuvre semble assez lourde.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 230
    Par défaut
    Tu dis
    Merci, je me suis finalement orienté vers l'approche DTO du tutoriel Google
    j'ai l'impression que tu veux dire que tu avais plusieurs approches possibles(DTO en est une parmi tant d'autres) .

    Si c'est le cas, je serais curieux de les connaitre en partant du postulat : GWT+Hibernate.

    en attente de proposition.....
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec GWT et Hibernate
    Par FunkyBreizh dans le forum GWT et Vaadin
    Réponses: 9
    Dernier message: 06/05/2011, 16h12
  2. Aider moi hibernate avec gwt
    Par Chorfa007 dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 19/08/2010, 19h11
  3. [Tapestry] Premier projet avec Tapestry5, Spring et Hibernate
    Par visiteur2 dans le forum Spring Web
    Réponses: 3
    Dernier message: 07/12/2009, 09h12
  4. Hibernate avec GWT
    Par Hecto dans le forum GWT et Vaadin
    Réponses: 28
    Dernier message: 06/09/2007, 18h55

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