Bonsoir à tous
j'ai besoin de votre aide
je veux faire un test sur netbeans platform pour ensuite l'appliquer à mon application.

Mon problème est le suit:
j'ai 3 modules + un librairie:
PatientModel qui contient les info sur le patient
PatientViewer affiche les nœuds patient
PatientEditor permet de créer et éditer un patient
Hibernate contient les outils nécessaires au fonctionnement de hibernate.

j'ai aussi une table T_PATIENT

Lorsque j’exécute l'application j'ai cette erreur :

org.hibernate.MappingException: invalid configuration
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1411)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1367)
at com.jpahernate.patientmodel.HibernateUtil.<clinit>(HibernateUtil.java:26)
at com.jpahibernate.patientviewer.PatientChildren.createKeys(PatientChildren.java:33)
at org.openide.nodes.AsynchChildren.run(AsynchChildren.java:189)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1424)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1968)
Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 26; Le type d'élément "hibernate-configuration" doit être déclaré.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1906)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:742)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1408)
... 6 more
Caused: java.lang.ExceptionInInitializerError
at com.jpahibernate.patientviewer.PatientChildren.createKeys(PatientChildren.java:33)
at org.openide.nodes.AsynchChildren.run(AsynchChildren.java:189)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1424)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1968)
Caused: org.openide.util.RequestProcessor$SlowItem: task failed due to
at org.openide.util.RequestProcessor$Task.schedule(RequestProcessor.java:1465)
at org.openide.nodes.AsynchChildren.addNotify(AsynchChildren.java:90)
at org.openide.nodes.Children.callAddNotify(Children.java:568)
at org.openide.nodes.EntrySupport$Default.getArray(EntrySupport.java:770)
at org.openide.nodes.EntrySupport$Default.getNodes(EntrySupport.java:172)
at org.openide.nodes.EntrySupport$Default.getNodes(EntrySupport.java:228)
at org.openide.nodes.EntrySupport$Default.getNodesCount(EntrySupport.java:232)
at org.openide.nodes.Children.getNodesCount(Children.java:502)
at org.openide.explorer.view.VisualizerNode.getChildren(VisualizerNode.java:258)
at org.openide.explorer.view.VisualizerNode.getChildren(VisualizerNode.java:248)
at org.openide.explorer.view.VisualizerNode.getChildCount(VisualizerNode.java:325)
at javax.swing.tree.DefaultTreeModel.getChildCount(DefaultTreeModel.java:186)
at javax.swing.tree.FixedHeightLayoutCache$FHTreeStateNode.expand(FixedHeightLayoutCache.java:1152)
at javax.swing.tree.FixedHeightLayoutCache.rebuild(FixedHeightLayoutCache.java:617)
at javax.swing.tree.FixedHeightLayoutCache.treeStructureChanged(FixedHeightLayoutCache.java:489)
at javax.swing.plaf.basic.BasicTreeUI$Handler.treeStructureChanged(BasicTreeUI.java:3891)
at javax.swing.tree.DefaultTreeModel.fireTreeStructureChanged(DefaultTreeModel.java:580)
at javax.swing.tree.DefaultTreeModel.nodeStructureChanged(DefaultTreeModel.java:365)
at javax.swing.tree.DefaultTreeModel.setRoot(DefaultTreeModel.java:135)
at org.openide.explorer.view.NodeTreeModel$1.run(NodeTreeModel.java:122)
at org.openide.util.Mutex.doEvent(Mutex.java:1341)
at org.openide.util.Mutex.readAccess(Mutex.java:348)
at org.openide.explorer.view.NodeTreeModel.setNode(NodeTreeModel.java:107)
at org.openide.explorer.view.TreeView$4.run(TreeView.java:890)
at org.openide.util.Mutex.doEvent(Mutex.java:1341)
at org.openide.util.Mutex.readAccess(Mutex.java:348)
at org.openide.explorer.view.TreeView.synchronizeRootContext(TreeView.java:880)
at org.openide.explorer.view.TreeView.lookupExplorerManager(TreeView.java:718)
at org.openide.explorer.view.TreeView.addNotify(TreeView.java:698)
at java.awt.Container.addNotify(Container.java:2769)
at javax.swing.JComponent.addNotify(JComponent.java:4743)
at org.openide.windows.TopComponent.addNotify(TopComponent.java:287)
at java.awt.Container.addNotify(Container.java:2769)
at javax.swing.JComponent.addNotify(JComponent.java:4743)
at java.awt.Container.addNotify(Container.java:2769)
at javax.swing.JComponent.addNotify(JComponent.java:4743)
at org.netbeans.swing.tabcontrol.TabbedContainer.addNotify(TabbedContainer.java:932)
at java.awt.Container.addNotify(Container.java:2769)
at javax.swing.JComponent.addNotify(JComponent.java:4743)
at java.awt.Container.addNotify(Container.java:2769)
at javax.swing.JComponent.addNotify(JComponent.java:4743)
at java.awt.Container.addNotify(Container.java:2769)
at javax.swing.JComponent.addNotify(JComponent.java:4743)
at java.awt.Container.addNotify(Container.java:2769)
at javax.swing.JComponent.addNotify(JComponent.java:4743)
at java.awt.Container.addImpl(Container.java:1114)
at java.awt.Container.add(Container.java:966)
at org.netbeans.core.windows.view.ui.MainWindow.setDesktop(MainWindow.java:582)
at org.netbeans.core.windows.view.ViewHierarchy.setDesktop(ViewHierarchy.java:806)
at org.netbeans.core.windows.view.ViewHierarchy.setMainWindowDesktop(ViewHierarchy.java:796)
at org.netbeans.core.windows.view.ViewHierarchy.updateDesktop(ViewHierarchy.java:689)
at org.netbeans.core.windows.view.DefaultView.showWindowSystem(DefaultView.java:561)
at org.netbeans.core.windows.view.DefaultView.windowSystemVisibilityChanged(DefaultView.java:501)
at org.netbeans.core.windows.view.DefaultView.changeGUI(DefaultView.java:183)
at org.netbeans.core.windows.ViewRequestor.dispatchRequest(ViewRequestor.java:272)
at org.netbeans.core.windows.ViewRequestor.processVisibilityRequest(ViewRequestor.java:261)
at org.netbeans.core.windows.ViewRequestor.postVisibilityRequest(ViewRequestor.java:198)
at org.netbeans.core.windows.ViewRequestor.scheduleRequest(ViewRequestor.java:120)
at org.netbeans.core.windows.Central.setVisible(Central.java:122)
at org.netbeans.core.windows.WindowManagerImpl.setVisible(WindowManagerImpl.java:799)
at org.netbeans.core.windows.WindowSystemImpl.show(WindowSystemImpl.java:87)
at org.netbeans.core.GuiRunLevel$InitWinSys.run(GuiRunLevel.java:250)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
[catch] at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
voici la configuration hibernate : le fichier hibernate.cfg.xml

Code xml : 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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
    <property name="hibernate.connection.url">jdbc:hsqldb:hsql://192.168.1.101:9001/patientDB;create=true</property>
    <property name="hibernate.connection.username">sa</property>
    <property name="hibernate.connection.password"/>
    <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    <property name="hibernate.current_session_context_class">thread</property>
    <mapping resource="com/jpahernate/patientmodel/Patient.hbm.xml"/>
  </session-factory>
</hibernate-configuration>



je vous montre la classe HibernateUtil qui se trouve dans le module PatientModel:

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
41
42
43
package com.jpahernate.patientmodel;
 
import java.net.URL;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
/**
 * Hibernate Utility class with a convenient method to get Session Factory object.
 *
 * @author Modelis
 */
public class HibernateUtil {
 
    private static org.hibernate.SessionFactory sessionFactory;
 
    public HibernateUtil() {
    }
 
    static {
            URL url = Thread.currentThread().getContextClassLoader().getResource("com/jpahernate/patientmodel/hibernate.cfg.xml");
            sessionFactory = new Configuration(){}.configure(url).buildSessionFactory();
    }
 
    public static SessionFactory getInstance() {
        return sessionFactory;
    }
 
    public static Session openSession(){
        return sessionFactory.openSession();
    }
 
    public static Session getcurrentSession(){
        return sessionFactory.getCurrentSession();
    }
 
    public static void close() {
        if(sessionFactory != null){
            sessionFactory.close();
        }
        sessionFactory = null;
    }
}
ici vous avez le ficher hibernate-mapping nommé : Patient.hbm.xml

Code xml : 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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
    <property name="hibernate.connection.url">jdbc:hsqldb:hsql://192.168.1.101:9001/patientDB;create=true</property>
    <property name="hibernate.connection.username">sa</property>
    <property name="hibernate.connection.password"/>
    <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    <property name="hibernate.current_session_context_class">thread</property>
    <mapping resource="com/jpahernate/patientmodel/Patient.hbm.xml"/>
  </session-factory>
</hibernate-configuration>


Merci d'avance