初始SessionFactory创建失败。org.hibernate.InvalidMappingException:无法读取XML

初始SessionFactory创建失败。org.hibernate.InvalidMappingException:无法读取XML,xml,hibernate,Xml,Hibernate,我在做什么 我遇到以下错误: 初始SessionFactory创建失败。org.hibernate.InvalidMappingException:无法读取XML 以下是完整的错误消息: Nov 18, 2012 9:52:46 PM org.hibernate.internal.util.xml.ErrorLogger logErrors ERROR: HHH000196: Error parsing XML (2) : Element type "generate" must be decl

我在做什么

我遇到以下错误:

初始SessionFactory创建失败。org.hibernate.InvalidMappingException:无法读取XML

以下是完整的错误消息:

Nov 18, 2012 9:52:46 PM org.hibernate.internal.util.xml.ErrorLogger logErrors
ERROR: HHH000196: Error parsing XML (2) : Element type "generate" must be declared.
Nov 18, 2012 9:52:46 PM org.hibernate.internal.util.xml.ErrorLogger logErrors
ERROR: HHH000196: Error parsing XML (2) : The content of element type "id" must match "(meta*,column*,type?,generator?)".
Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Unable to read XML
Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.mytutorial.CourseDaoImpl.<clinit>(CourseDaoImpl.java:19)
    at com.mytutorial.CourseServiceImpl.processCourse(CourseServiceImpl.java:10)
    at com.mytutorial.App.main(App.java:21)
Caused by: org.hibernate.InvalidMappingException: Unable to read XML
    at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:109)
    at org.hibernate.cfg.Configuration.add(Configuration.java:478)
    at org.hibernate.cfg.Configuration.add(Configuration.java:474)
    at org.hibernate.cfg.Configuration.add(Configuration.java:647)
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:730)
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2115)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2087)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2067)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2020)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1935)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1914)
    at com.mytutorial.CourseDaoImpl.<clinit>(CourseDaoImpl.java:15)
    ... 2 more
Caused by: org.xml.sax.SAXParseException: Element type "generate" must be declared.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1929)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:785)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:78)
    ... 13 more
2012年11月18日9:52:46 PM org.hibernate.internal.util.xml.ErrorLogger logErrors
错误:HH000196:分析XML时出错(2):必须声明元素类型“generate”。
2012年11月18日晚上9:52:46 org.hibernate.internal.util.xml.ErrorLogger logErrors
错误:HH000196:分析XML时出错(2):元素类型“id”的内容必须匹配(元*,列*,类型?,生成器?)。
初始SessionFactory创建失败。org.hibernate.InvalidMappingException:无法读取XML
线程“main”java.lang.ExceptionInInitializeError中出现异常
在com.mytutorial.CourseDaoImpl.(CourseDaoImpl.java:19)
在com.mytutorial.CourseServiceImpl.processCourse(CourseServiceImpl.java:10)
位于com.mytutorial.App.main(App.java:21)
原因:org.hibernate.InvalidMappingException:无法读取XML
位于org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:109)
位于org.hibernate.cfg.Configuration.add(Configuration.java:478)
位于org.hibernate.cfg.Configuration.add(Configuration.java:474)
在org.hibernate.cfg.Configuration.add上(Configuration.java:647)
位于org.hibernate.cfg.Configuration.addResource(Configuration.java:730)
位于org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2115)
位于org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2087)
位于org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2067)
位于org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2020)
位于org.hibernate.cfg.Configuration.configure(Configuration.java:1935)
位于org.hibernate.cfg.Configuration.configure(Configuration.java:1914)
在com.mytutorial.CourseDaoImpl.(CourseDaoImpl.java:15)
... 还有两个
原因:org.xml.sax.SAXParseException:必须声明元素类型“generate”。
位于com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
位于com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
位于com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
请访问com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
位于com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handlestarelement(XMLDTDValidator.java:1929)
位于com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:785)
在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
位于com.sun.org.apache.xerces.internal.jaxp.saxpasserimpl$jaxpsaxpasser.parse(saxpasserimpl.java:522)
位于org.dom4j.io.SAXReader.read(SAXReader.java:465)
位于org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:78)
... 还有13个
hibernate.cfg.xml如下所示:

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration> 

    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> 
        <property name="connection.url">jdbc:hsqldb:hsql://localhost</property> 
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>


        <!-- JDBC connection pool (use the built-in) --> 
        <property name="connection.pool_size">2</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Drop and re-create the database schema on start-up, also try with “update” to keep the previous values -->
        <property name="hbm2ddl.auto">create</property> 


        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <mapping resource="com/mytutorial/Course.hbm.xml"/> 
    </session-factory>
</hibernate-configuration>

org.hsqldb.jdbcDriver
jdbc:hsqldb:hsql://localhost 
sa
2.
org.hibernate.dialogue.hsql方言
创造
真的
Course.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">


<hibernate-mapping>

    <class name="com.mytutorial.Course" table="Course">
        <id name="id" column="course_id">
            <generate class="native"/>
        </id>

        <property name="name" column="name"/>
        <property name="course" column="course"/>
    </class>
</hibernate-mapping>


如果有人能帮助我,我将不胜感激。

看来,您在
Course.hbm.xml
文件中有一个类型错误。ID列生成器映射的标记名为
generator
。您正在使用
生成
作为


请按
更正并重试。

谢谢您的回答!它纠正了类型错误,但现在我有一个不同的错误。你介意看一下这个错误消息吗?错误:java.net.ConnectException:线程“main”中的连接被拒绝异常org.hibernate.exception.JDBCConnectionException:无法打开连接,原因:java.sql.SQLTransientConnectionException:java.net.ConnectException:连接被拒绝,原因:org.hsqldb.hsqleException:java.net.ConnectException:连接被拒绝,原因:java.net.ConnectException:连接被拒绝谢谢@user1834781:我认为这是一个与HSQL设置和配置相关的不同问题。由于堆栈跟踪中应该有更多的信息,您可以发布一个完整堆栈跟踪的新问题吗?