每当我们点击运行或是调试时,来不来就看到Console下一片惨红,一股不好的预感提示我们,揪心的事儿来了,哈哈……
此时我们需要的是深吸一口气,静下心来,慢慢分析问题之所在。就我所遇,出现如题的问题一般情况:
1、*.hbm.xml文件的路径不对。这分两个小点,一是本身这个文件的位置没有放对,二是hibernate.cfg.xml中配置的路径不对,这就取决于我们喜欢改那个地方了。
2、*.xml的文件中存在语法错误。一般用工具生成的xml文件不会存在这类错误,但是对于像我这样的初学者,喜欢自己去手动配置,这就难免会遇到输入错误的情况。我今天也正是如此,“org.xml.sax.SAXParseException: Attribute "colum" must be declared for element type "id".”,这是另一句异常,我闷头闷脑的找了多半天也没有发现错误所在,您发现了吗,哈哈,我的column关键字输错了,嗯,正是如此。
3、可能是你应用其它外部包中有与数据库相关的操作导致与Hibernate冲突,致使Hibernate最初就无法配置。例如我在使用JFreeChart的时候,我在网上看到需要导入gnujaxp.jar、jcommon-1.0.17.jar、jfreechar-1.0.14,当我导入后再运行即抛出异常,我想可能是包的版本不兼容,结果换来换去还是有问题,最后删掉“gnujaxp.jar”对了,其中详细缘由我也不清楚。
以上来自http://blog.youkuaiyun.com/horace20/article/details/6535069感谢作者总结,根据我自己的情况,在这里补充我的情况。
我们队长总结是这样的(http://team.aitinan.com/)不知道他是出啥错了,反正就有这一项修改
---------------------------------------------------------------------------------------------------
2.xxx.hbm.xml:
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd
更改为
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd
---------------------------------------------------------------------------------------------------
我的情况最奇葩了,在dtd之后反引号之前加了个空格,导致题目的unable to read xml
以前好像也出现过这样的问题,xml文件里面要很小心,不能多一个空格,也不能少一个空格。
<property name="MName"type="java.lang.String">
好吧,我又配置了一遍,发现这个空格是IDE自动生成。这个没办法了。队长说的对,IDE不可信~