我项目中有大约75 .hbm.xml文件。在75个文件中,有4个文件使用
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
和其他71个文件正在使用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
该项目运行良好。但是昨天,当我重新启动服务器时,我发现它没有起床并抛出了这个例外。
org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 20;
Element type "hibernate-mapping" must be declared
我搜索了谷歌搜索,并找到了4个文件遇到问题的解决方案。我在这4.hbm.xml文件中更改了此代码
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
对于此代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
和服务器起床并运行。
我在本地,同时进行了本地问题。
我找不到,为什么会发生这种情况,因为它较早起作用,为什么突然所有机器都停止工作?
冬眠团队的结尾是否进行了任何修改?
我必须回答我的高级问题,但没有适当的答案。
I am using java7, spring-core-3.0.0, spring-2.5 and spring-hibernate2 jars.
在映射中,我替换为:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"classpath://org/hibernate/hibernate-mapping-3.0.dtd">
在配置中,我由:
替换<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"classpath://org/hibernate/hibernate-configuration-3.0.dtd">
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd是一个很好的URL,但自昨天以来非常不稳定:'(
"重定向301"到https://hibernate.org似乎引起了这个问题。并且在XML中直接使用https也不起作用。
请小心,旧的tomcat(6或之前(无法识别协议" class path://"。
包含'http'替换为'classPath'的URL,文件将起作用。