为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate:必须声明元素类型“hibernate-configuration”。没有迁移

Hibernate:必须声明元素类型“hibernate-configuration”。没有迁移

Cats萌萌 2023-02-23 14:40:32
我正在使用 maven 来集成我的项目。我收到常见的“必须声明元素类型‘hibernate-configuration’”。问题虽然我没有对项目的休眠部分进行任何更改。它自行停止工作。例外WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 5 in XML document from class path resource [hibernate.cdf.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 26; Element type "hibernate-configuration" must be declared.Jun 27, 2019 7:03:22 PM org.springframework.web.servlet.FrameworkServlet initServletBeanSEVERE: Context initialization failedorg.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 5 in XML document from class path resource [hibernate.cdf.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 26; Element type "hibernate-configuration" must be declared.    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:195)    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromImportedResources$0(ConfigurationClassBeanDefinitionReader.java:358)
查看完整描述

3 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

在映射中,我替换为:

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

“重定向 301”到https://hibernate.org似乎导致了这个问题。在 xml 中直接使用 https 也不行。

小心,旧的 tomcat(6 或更早版本)不识别协议“classpath://”。


查看完整回答
反对 回复 2023-02-23
?
繁星coding

TA贡献1797条经验 获得超4个赞

DTD 文件位于两个 HTTP 重定向 (301) 之后,读取 XML 并使用 DTD 验证的 Java InputStream 不能很好地处理它。将 DTD 替换为:

https://hibernate.org/dtd/hibernate-configuration-3.0.dtd

所以这是一个直接链接到它


查看完整回答
反对 回复 2023-02-23
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

我找到了解决方案。因为我主要使用编程配置,所以我删除了 @ImportResource(value = {"classpath:hibernate.cdf.xml"}) 注释,这样就不会使用 hibernate.cdf.xml。然后我尝试使用编程配置设置以前在 xml 中看到的属性。


这:


<property     name="hibernate.current_session_context_class">thread</property>

<property name="hibernate.enable_lazy_load_no_trans">true</property>

可以表示为:


hibernateProperties.setProperty  ("org.hibernate.context.internal.ThreadLocalSessionContext", "thread");

hibernateProperties.setProperty("hibernate.enable_lazy_load_no_trans", "true");

觉得合适的请采纳。


查看完整回答
反对 回复 2023-02-23
  • 3 回答
  • 0 关注
  • 263 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号