【问题标题】:Error parsing configuration/hibernate.cfg.xml?解析配置/hibernate.cfg.xml 时出错?
【发布时间】:2014-07-10 19:24:54
【问题描述】:

我的 XML 文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
   "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
   "http://www.hibernate.sourceforge.net/dtd/hibernate-configuration-3.0.dtd">


<hibernate-configuration>
   <session-factory>
       <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

       <property name="connection.url">jdbc:oracle:thin:@192.168.252.128:1521:orcl</property>

       <property name="connection.username">system</property>

       <property name="connection.passowrd">manager</property>

       <property name="dialect">org.hibernate.dialect.OracleDialect</property>

       <property name="show_sql">true</property>

       <property name="hbm2ddl.auto">update</property>

       <mapping class="com.nttdata.domain.Employee"/>

    </session-factory>
</hibernate-configuration>

执行后的控制台::

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.HibernateException: problem parsing configuration/hibernate.cfg.xml
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1222)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1161)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1147)
    at com.nttdata.util.HibernateUtil.getSessionFactory(HibernateUtil.java:11)
    at com.nttdata.dao.EmployeeDao.saveEmployee(EmployeeDao.java:13)
    at com.nttdata.client.Driver.main(Driver.java:10)
Caused by: org.dom4j.DocumentException: www.hibernate.sourceforge.net Nested exception: www.hibernate.sourceforge.net
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217)
    ... 5 more

错误有什么帮助??

【问题讨论】:

    标签: java hibernate jakarta-ee


    【解决方案1】:

    尝试将 DOCTYPE 更改为:

    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    

    【讨论】:

      【解决方案2】:
      <!DOCTYPE hibernate-configuration SYSTEM
          "classpath://org/hibernate/hibernate-configuration-3.0.dtd">
      

      这意味着 hibernate 将从类路径加载 DTD - 它通常包含在 org/hibernate 目录中的 hibernate jar 中。

      但是,我们使用的是 hibernate 3.5.6 - 我不知道这种方法在较新的版本中是否仍然有效 - 试一试。这样做的好处是您完全独立于互联网连接、代理等。

      休眠配置文件位置

      第一个解决方案是使用类路径在系统中提供 DTD 文件位置。所以离线工作的 DocType 是;

      <!DOCTYPE hibernate-configuration SYSTEM 
          "classpath://org/hibernate/hibernate-configuration-3.0.dtd">
      

      在 SYSTEM 中使用 SourceForge DTD URL

      我发现另一个可行的解决方案是将 DTD URL 更改为 SourceForge 并将声明从 PUBLIC 更改为 SYSTEM。

      因此,如果您的系统处于离线状态,以下内容也可以使用。

      <!DOCTYPE hibernate-configuration SYSTEM 
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-06
        • 2021-06-16
        相关资源
        最近更新 更多