使用hibernate经常会出现些什么问题呀?请教各位高手啦!底下这样的错误常常是什么原因引起的?
Exception in thread "main" org.hibernate.MappingException: invalid configuration
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2009)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1926)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1905)
at DAO.gradeManager.main(gradeManager.java:14)
Caused by: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
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.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:250)
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.doConfigure(Configuration.java:2006)
... 3 more

解决方案 »

  1.   

    hibernate.cfg.xml配置文件中mapping 的配置如下 引起的<mapping 
       resource="imageacquisition/scan/model/Imgbatchinfo.hbm.xml" />
       <mapping resource="imageacquisition/scan/model/Imgscaninfo.hbm.xml" />
       <mapping resource="login/model/Imguserinfo.hbm.xml"></mapping> 
       <mapping 
        resource="exproperty/model/Imgextenddefine.hbm.xml">
      
       </mapping> 
       <mapping 
       resource="removereason/model/Imgremovereason.hbm.xml"></mapping>
    mapping 不要换行  写成如下格式<mapping resource="imageacquisition/scan/model/Imgscaninfo.hbm.xml" /><mapping resource="imageacquisition/scan/model/Imgscaninfo.hbm.xml" /><mapping resource="imageacquisition/scan/model/Imgscaninfo.hbm.xml" />
      

  2.   

    没有换行呀,我的就只有一个mapping元素
     
    <mapping resource="DAO/grade.hbm.xml"/>
      

  3.   

    没有啊,就是用的SQL Server 2005
    配置文件中也是配置的这个呀
      

  4.   


    你是说mapping那里改成grade.hbm.xml吗
    试过了,还是同样的错误
      

  5.   

    配置文件解析出错,很有可能配置文件头部少了一句,导致有些标签解析不了
    例如struts的配置文件头部会加如下内容<!DOCTYPE struts PUBLIC 
        "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 
        "http://struts.apache.org/dtds/struts-2.1.7.dtd"> hibernate的也一样
      

  6.   

    查这个gradeManager的xml是否正确
      

  7.   

    虽然没有加DTD,但是我加了这个
    <?xml version='1.0' encoding='utf-8'?>
    <hibernate-configuration
            xmlns="http://www.hibernate.org/xsd/hibernate-configuration"
            xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-configuration hibernate-configuration-4.0.xsd"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    而且是从官网的toturial直接copy过来的
    我也试过再加DTD,加上的话会出错