Reputation: 11
In Hibernate,I am getting following error at runtime
1. employee.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package ="com.hibernate.basic">
<class name="Employee" table="Employee" lazy="false">
<id name="id" column="EMPID" type ="int">
<generator class="increment"></generator>
</id>
<property name="firstName" column="NAME"></property>
<property name="lastName"column="LNAME"></property>
</class>
2. hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@172.16.3.94:1521:EAMABP</property>
<property name="connection.username">EAM</property>
<property name="connection.password">EAM</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="employee.hbm.xml" />
</session-factory>
</hibernate-configuration>
3. Employee.java
package com.hibernate.basic;
public class Employee {
private int id;
private String FName, LName;
public String getFName() {
return FName;
}
public void setFName(String FName) {
this.FName = FName;
}
public String getLName() {
return LName;
}
public void setLName(String LName) {
this.LName = LName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
4. StoreData.java
package com.hibernate.basic;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class StoreData {
public static void main(String[] args) {
// creating configuration object
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");// populates the data of the
// configuration file
// creating seession factory object
SessionFactory factory = cfg.buildSessionFactory();
// creating session object
Session session = factory.openSession();
// creating transaction object
Transaction t = session.beginTransaction();
Employee e1 = new Employee();
e1.setId(115);
e1.setFName("sonoo");
e1.setLName("jaiswal");
session.persist(e1);// persisting the object
t.commit();// transaction is commited
session.close();
System.out.println("successfully saved");
}
}
Error occurred after execution:
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.InvalidMappingException: Could not parse mapping document from resource employee.hbm.xml at org.hibernate.cfg.Configuration.addResource(Configuration.java:569) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508) at org.hibernate.cfg.Configuration.configure(Configuration.java:1428) at com.hibernate.basic.StoreData.main(StoreData.java:13) Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:508) at org.hibernate.cfg.Configuration.addResource(Configuration.java:566) ... 6 more Caused by: org.dom4j.DocumentException: Error on line 14 of document : Element type "property" must be followed by either attribute specifications, ">" or "/>". Nested exception: Element type "property" must be followed by either attribute specifications, ">" or "/>". at org.dom4j.io.SAXReader.read(SAXReader.java:482) at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499) ... 7 more
Upvotes: 1
Views: 2892
Reputation: 173
I had the same error:
Element type "property" must be followed by either attribute specifications, ">" or "/>". Nested exception: Element type "property" must be followed by either attribute specifications, ">" or "/>".
And i fixed it changing a line in a *.hbm.xml file
There was a space missing between column="ESAMBIGUA" and length="1"/>
The first comment, the one from Eduard Wirch really helped me. Thanks!
Upvotes: 0
Reputation: 197
This error usually occurs because your tags are not closed.Of what you have posted here,I guess you have not closed the hibernate-mapping tag in employee.hbm.Try doing that! Hope this helps!
Upvotes: 0
Reputation: 197
The error clearly states the line number and the error.Having a look at this could help.
Error on line 14 of document : Element type "property" must be followed by either attribute specifications, ">" or "/>". Nested exception: Element type "property" must be followed by either attribute specifications, ">" or "/>".
Upvotes: 0