2013-02-05 148 views
0

我對hibernate非常新穎,我創建了一個非常基本的示例,但是當我嘗試運行此應用程序時,xml解析錯誤即將到來。我已創建了資源包中我一直在Employee.hbm.xml和Eclipse中的src文件夾下,我一直在hibernate.cfg.xml休眠時解析錯誤

這是我的錯誤

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). 
log4j:WARN Please initialize the log4j system properly. 
Initial SessionFactory creation failed.org.hibernate.HibernateException: problem parsing configuration/com/nousinfo/resource 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at com.nousinfo.tutorial.utils.HibernateUtil.buildSessionFactory(HibernateUtil.java:17) 
    at com.nousinfo.tutorial.utils.HibernateUtil.<clinit>(HibernateUtil.java:7) 
    at com.nousinfo.tutorial.dao.impl.EmployeeDAO.<clinit>(EmployeeDAO.java:15) 
    at main.hibernatetest.main(hibernatetest.java:30) 
Caused by: org.hibernate.HibernateException: problem parsing configuration/com/nousinfo/resource 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1222) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1161) 
    at com.nousinfo.tutorial.utils.HibernateUtil.buildSessionFactory(HibernateUtil.java:12) 
    ... 3 more 
Caused by: org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog. 
    at org.dom4j.io.SAXReader.read(SAXReader.java:350) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217) 
    ... 5 more 

這是我的hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-mapping 
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 


<hibernate-configuration> 
    <session-factory> 
     <property name=hibernate.dialect "> 
      org.hibernate.dialect.MySQLDialect 
     </property-name> 
      <property name=hibernate.connection.driver_class "> 
       com.mysql.jdbc.Driver 
      </property-name> 
       <property name=hibernate.connection.url "> 
        jdbc:mysql://192.168.25.30:3306/employee 
       </property-name> 
        <property name=hibernate.connection.username "> 
         jack 
        </property-name> 
         <property name=hibernate.connection.password "> 
          jack1234 
         </property-name> 
          <property name="show_sql"> 
           true 
          </property> 

          <property name="connection.autocommit"> 
           true 
          </property> 
          <!-- List of XML mapping files --> 
          <mapping resource="com/nousinfo/resource/Employee.hbm.xml" /> 
    </session-factory> 
</hibernate-configuration> 

這是我Employee.hbm.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-mapping 
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
    <class name="Employee" table="EMPLOYEE"> 
     <meta attribute="class-description"> 
      This class contains the employee detail 
     </meta> 
     <id name="employeeNumber" type="int" column="EMPLOYE_NUMBER"> 
      <generator class="native" /> 
     </id> 
     <property name="firstName" type="string" column="FIRST_NAME" /> 
     <property name="lastName" type="string" column="LAST_NAME" /> 
     <property name="title" type="string" column="TITLE" /> 
     <property name="departmentId" type="string" column="DEPARTMENT_ID" /> 
     <property name="address1" type="string" column="ADDRESS_1" /> 
     <property name="address2" type="string" column="ADDRESS_2" /> 
     <property name="city" type="string" column="CITY" /> 
     <property name="state" type="string" column="STATE" /> 
     <property name="pincode" type="int" column="PINCODE" /> 
     <property name="telephoneNumber" type="int" column="TELEPHONE_NUMBER" /> 
     <property name="mobileNumber" type="int" column="MOBILE_NUMBERr" /> 
     <property name="dateOfBirth" type="date" column="DATE_OF_BIRTH" /> 
     <property name="dateOfAnniversary" type="date" column="DATE_OF_ANNIVERSARY" /> 
     <property name="dateOfJoining" type="date" column="DATE_OF_JOINING" /> 
     <property name="dateOfLeaving" type="date" column="DATE_OF_LEAVING" /> 
     <property name="reasonForLeaving" type="string" column="REASON_FOR_LEAVING" /> 
    </class> 

</hibernate-mapping> 
+0

嘗試刪除Employee.hbm.xml文件中的第一個空格 – Taky

回答

1

你會得到這個例外

  1. 你在hibernate配置文件的許多行中沒有在name =之後加上開頭引號(「)。
  2. 您已在多行hibernate配置文件中結束property標記,並標記property-name標記。
  3. 屬性在hibernate配置文件中沒有完全指定。

除了這些,你的休眠配置文件充滿了語法錯誤。請參考以下鏈接瞭解如何準備hibernate配置文件。

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html