当前位置: 代码迷 >> Java Web开发 >> Hibernate读不到配置文件 Unable to read XML解决思路
  详细解决方案

Hibernate读不到配置文件 Unable to read XML解决思路

热度:70   发布时间:2016-04-16 21:54:30.0
Hibernate读不到配置文件 Unable to read XML
有两个工程,在一个里面可以运行,一个里面不能运行,所以配置文件肯定是正确的。
现在的问题估计是jar包的问题,因为两个工程用的是不一样的jar包。
但是把jar包捣成一样的后,还是不能运行。
还有能运行的那个是普通的Java Project,不能运行的Web Project。
很简单的东西都不会....
错误代码
Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Unable to read XML
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.daocao.util.db.HibernateUtil.buildSessionFactory(HibernateUtil.java:16)
at com.daocao.util.db.HibernateUtil.<clinit>(HibernateUtil.java:7)
at com.bjsxt.hibernate.Test.main(Test.java:16)
Caused by: org.hibernate.InvalidMappingException: Unable to read XML
at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:101)
at org.hibernate.cfg.Configuration.add(Configuration.java:513)
at org.hibernate.cfg.Configuration.add(Configuration.java:509)
at org.hibernate.cfg.Configuration.add(Configuration.java:716)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:801)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2344)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2310)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2290)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2243)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2158)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2137)
at com.daocao.util.db.HibernateUtil.buildSessionFactory(HibernateUtil.java:12)
... 2 more
Caused by: org.xml.sax.SAXParseException: Element type "hibernate-mapping" must be declared.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1196)
at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1737)
at org.apache.xerces.validators.common.XMLValidator.validateElementAndAttributes(XMLValidator.java:3552)
at org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1159)
at org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1806)
at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:949)
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1081)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:75)
... 13 more


------解决思路----------------------
没有dom4j.jar包。hibernate读取配置文件是基于dom4j的。
------解决思路----------------------
Java Project项目里没有webroot,而Web Project项目里是有webroot的,而且如果你web.xml没有配置的话一般默认的会去webroot下面找xml文件;好好找找看看你的xml文件存放的路径在Web Project项目中是否能被加载到
------解决思路----------------------

是不是没加载到呀?
Element type "hibernate-mapping" must be declared.
hibernate-mapping必须被初始化。
------解决思路----------------------
1.根据错误提示: at com.daocao.util.db.HibernateUtil.buildSessionFactory(HibernateUtil.java:16)到这个地方看一下错误在哪里。。。

2.dom4j.jar包没有导入。。。
------解决思路----------------------
看一下你的web.xml和struts.xml,很多时候都是因为这两个文件没配置好而导致找不到信息的。
------解决思路----------------------
hibernate的配置在哪里。new Configuration();就需要有SessionFactory的配置了。你没配置的话就户会报这个问题了
------解决思路----------------------
有没有导入dom4j.jar包啊?把你的配置文件贴出来看看。。。
  相关解决方案