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