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... :lol:
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:
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:
1 2 3
|
Configuration configuration = new Configuration().configure();
SessionFactory sessions = configuration.buildSessionFactory(); |
J'obtient l'erreur suivante :
Code:
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:
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:
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