Hibernate.cfg.xml中<session-factory>标签配置错误求助
解决Hibernate配置文件的两个XML验证错误
第一个错误:session-factory内容不匹配DTD定义
你的配置里<property name="hibernate.connection.username">root</property>>这一行多了一个多余的>,导致XML结构损坏,触发DTD验证失败。XML解析器会把这个多余的>当作session-factory的子节点,而DTD定义里session-factory只允许property、mapping等指定节点,所以报错。
修复方法:删除username那行末尾多余的>,修正后该行应为:
<property name="hibernate.connection.username">root</property>
第二个错误:DOCTYPE改为PUBLIC时的空格问题
使用PUBLIC声明DTD时,必须遵循<!DOCTYPE 根元素名 PUBLIC "公共标识符" "系统标识符">的格式,公共标识符和系统标识符之间必须有空格。你之前修改时可能没正确添加空格,或者公共标识符格式不对。
Hibernate 3的正确PUBLIC DTD声明应为:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
修正后的完整配置代码
<?xml version = "1.0" encoding = "utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- url --> <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/</property> <!-- username --> <property name="hibernate.connection.username">root</property> <!-- password --> <property name="hibernate.connection.password">Feelslikedope</property> <!-- mysql driver --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> </session-factory> </hibernate-configuration>
内容的提问来源于stack exchange,提问作者Jahedul Islam
相关产品推荐
相关产品推荐

