必须声明元素类型 "hibernate-mapping"



我项目中有大约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,文件将起作用。

最新更新