元素类型“休眠映射”必须声明

时间:2019-06-28 07:19:15

标签: java spring hibernate 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

我用Google搜索了一下,发现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.

2 个答案:

答案 0 :(得分:2)

在映射中,我替换为:

<!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是一个不错的网址,但从昨天开始就非常不稳定:'(

https://hibernate.org的“重定向301”似乎导致了此问题。而且在XML中直接使用https也不起作用。

请注意,旧的tomcat(6或更早版本)无法识别协议“ classpath://”。

答案 1 :(得分:0)

将包含“ http”的网址替换为“ classpath”,文件将起作用。

相关问题