hibernate配置文件
<?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"><!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>    <session-factory>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="connection.url">jdbc:mysql:///test</property>
        <property name="connection.username">root</property>
        <property name="connection.password">880418</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
  <mapping resource="it/cast/hibernate/domain/Person.hbm.xml"/>   
    </session-factory></hibernate-configuration>
映射文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-mapping 
package="it.cast.hibernate.domain">
<class name="Person">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>报错信息
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from resource it/cast/hibernate/domain/Person.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:616)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1635)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1603)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1556)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1476)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
at it.cast.hibernate.Base.main(Base.java:18)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:549)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:613)
... 7 more
Caused by: org.xml.sax.SAXParseException: Element type "hibernate-mapping" 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.startElement(XMLDTDValidator.java:764)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:921)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
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:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
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:107)
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.cfg.Configuration.addInputStream(Configuration.java:546)
... 8 more
这是啥原因造成的?

解决方案 »

  1.   

    Could not parse mapping document from resource it/cast/hibernate/domain/Person.hbm.xml
    说找不到 Person.hbm.xml 文件 看看路径是不是写错了
      

  2.   

    觉得是jar包问题。
    antlr-2.7.6.jar
    c3p0-0.9.1.2.jar
    cglib-2.2.jar
    common-annotations.jar
    commons-collections-3.1.jar
    commons-fileupload-1.2.2.jar
    commons-lang-2.5.jar
    commons-logging.jar
    dom4j-1.6.1.jar
    ejb3-persistence.jar
    freeer-2.3.18.jar
    hibernate-annotations.jar
    hibernate-cglib-repack-2.1_3.jar
    hibernate-commons-annotations.jar
    hibernate-core.jar
    hibernate-entitymanager.jar
    hibernate3.jar
    javassist-3.12.0.GA.jar
    jta.jar
    log4j-1.2.15.jar
    mysql-connector-java-5.1.19-bin.jar
    ognl-3.0.4.jar
    slf4j-api-1.5.2.jar
    slf4j-log4j12.jar
    spring.jar
    struts2-core-2.3.1.2.jar
    struts2-spring-plugin-2.3.1.2.jar
    xwork-core-2.3.1.2.jar
    上面这些看看是否都有。
      

  3.   

    是个单纯的Hibernate工程,没有spring跟strust
    包应该都够了
      

  4.   

    This behavior can happen if there is any illegal character in the header before the starting <hibernate-mapping> tag. This even can be a non-printable character.映射文件
    Person.hbm.xml
    是不是有什么不正确的字符,xml格式化一下。或者是header有错误。。
      

  5.   


    Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from resource it/cast/hibernate/domain/Person.hbm.xmlCaused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping
    很明显楼主你的Person.hbm.xml这个映射文件有问题,编译器不能解析,你好好检查检查你这个xml文件的特殊字符标签是不是匹配
      

  6.   

    应该是mapping文件有错吧,仔细检查下