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

NetBeans Java Discussion :

Netbeans Platform et Hibernate


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut Netbeans Platform et Hibernate
    Bonjour à tous,

    Je suis actuellement en train de développer un client riche basé sur NetBeans Platform. J'utilise la version 5.5 de NetBeans et le jdk 1.5.0_11.

    Je me suis familiarisé avec la plateforme en créeant divers éditeurs, exploreurs etc...
    J'ai ensuite décidé d'utiliser Hibernate comme API de persistence et Derby comme base de données et c'est ici que les problèmes commencent...

    Pour ajouter les librairies tierces à mon module, j'ai créé deux Library Wrapper Modules :
    - un contenant derby.jar
    - l'autre contenant l'ensemble des jars nécessaires à l'utilisation d'Hibernate.

    Dans les propriétés de mon module, les dépendances avec les deux modules wrapper sont présentes.
    Pour la configuration d'Hibernate, j'utilise un fichier de configuration xml que j'ai placé dans le répertoire src (il est donc automatiquement placé dans le default package par netbeans). Un extrait de ce fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        <!-- local connection properties -->		
        <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
        <property name="hibernate.connection.url">jdbc:derby:mabaseDerbyNB;create=true</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password">toto</property>
    La base de données est donc créée automatiquement. Normalement les fichiers de configuration d'Hibernate devraient marcher car je les ai utilisé de la même manière pour créer un client riche avec Eclipse et ça marche.

    Quand j'essaie d'obtenir une SessionFactory :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Configuration configuration = new Configuration().configure();        
            SessionFactory sessions = configuration.buildSessionFactory();
    J'obtient l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    11:54:29,062  WARN SettingsFactory:117 - Could not obtain connection metadata
    java.sql.SQLException: No suitable driver
            at java.sql.DriverManager.getConnection(DriverManager.java:545)
            at java.sql.DriverManager.getConnection(DriverManager.java:140)
            at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
            at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
            at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
            at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
            at org.myorg.mypackage.ClientListAction.actionPerformed(ClientListAction.java:28)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
            at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
            at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1104)
            at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:578)
            at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:475)
            at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:422)
            at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:283)
            at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:779)
            at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2206)
            at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2100)
            at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2058)
            at java.awt.Component.dispatchEventImpl(Component.java:3867)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
            at java.awt.Container.dispatchEventImpl(Container.java:2010)
            at java.awt.Window.dispatchEventImpl(Window.java:1778)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    J'ai vérifié que la configuration s'est bien passée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Properties prop = configuration.getProperties();
    	System.out.println(prop.toString());
    Et le driver indiqué est correct, j'obtiens ceci dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	hibernate.connection.driver_class=org.apache.derby.jdbc.EmbeddedDriver
    Je ne comprends pas du tout pourquoi il ne trouve pas le driver...
    J'espère avoir été assez clair,
    Si quelqu'un peut m'éclairer, je le remercie d'avance !

    Arnaud

  2. #2
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Bonjour,

    As tu créé la dépendance entre derby et hibernate ?
    Sans ca hibernate ne voit pas les classes de ton warpper pour derby.

    n!co

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut
    Merci, c'était bien ça !
    J'ai totalement "zappé" cette dépendance, j'ai cherché des causes compliquées avant de vérifier les choses simples ...

    J'en profite également pour demander si tu sais quel est le point d'entrée dans un client riche sous NetBeans. Il y'a une partie de code que je souhaiterais exécuter au démarrage de l'appli.

    Arnaud

  4. #4
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Oui il te faut créer une classe héritant de ModuleInstall et redéfinir la méthode restored(), pour une execution au démarrage du module et finir par déclarer cette classe dans le manifest, ou peut être qui le rajoute tout seul.
    Si tu fais une recherche sur le forum, il y a un post détaillant plus la démarche.

    n!co

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut
    OK, merci beaucoup

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

Discussions similaires

  1. Utilisation de Hibernate dans NetBeans Platform
    Par Mustick dans le forum NetBeans Platform
    Réponses: 4
    Dernier message: 06/10/2011, 12h59
  2. [NBP]NetBeans Platform - ModuleInstall - Hibernate
    Par aяиaud dans le forum NetBeans
    Réponses: 9
    Dernier message: 27/04/2007, 17h30
  3. Réponses: 2
    Dernier message: 25/03/2006, 18h54
  4. Réponses: 1
    Dernier message: 24/03/2006, 16h32
  5. Réponses: 2
    Dernier message: 09/12/2005, 22h40

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