• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Hibernate - Confusing Configuration Errors

 
Ranch Hand
Posts: 72
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
I'm building my first Hibernate example refering
http://www.gloegl.de/8.html and
http://www.allapplabs.com/hibernate/getting_started_with_hibernate.htm

For a beginner, these two are good i think to develop a simple example.
Once i'll pas thr' errors..will post a link to a tutorial reg. this excercise.

I'm getting following errors:
1)
a) if i use:

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
and

public static final SessionFactory sessionFactory;

then during compile,Error is: variable sessionFactory might have not been initilized.

b) no compile time Error if i use
public static SessionFactory sessionFactory; (omitting final)

c) but when i run:

C:\Project\testHibernate\build\classes>java src.hibernate.testHibernate
---- Starting Hibernate
Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/Session
at src.hibernate.testHibernate.main(testHibernate.java:10)


2) if i use:

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;

net.sf package don't exisit.

Please tell me....if i'm using hibernate3.jar....should i use net.sf??

Thanks...
raminder singh
-------------------------------------------------------
My Project details are:

/testHibernate
|
|-lib
|-ant.jar
|-cglib-2.1.2.jar
|-commons-collections-2.1.1.jar
|-commons-lang.jar
|-commons-logging-1.0.4.jar
|-dom4j-1.6.1.jar
|-hibernate3.jar
|-jdbc2_0-stdext.jar
|-jta.jar
|-log4j-1.2.11.jar
|-mysql-connector-java-3.1.12-bin.jar
|-src
|-hibernate
|-AppLabsUser.hbm.xml
|-AppLabsUser.java
|-HibernateSessionFactory.java
|-testHibernate.java
|-hibernate.cfg.xml
|-log4j.properties
|-build.xml

Files are:

1) AppLabsUser.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="test.AppLabsUser" table="applabsuser">
<id column="USER_ID" name="id" type="java.lang.Long">
<generator class="sequence"/>
</id>
<property column="USER_NAME" length="255" name="userName" not-null="true" type="java.lang.String"/>
<property column="USER_PASSWORD" length="255" name="userPassword" not-null="true" type="java.lang.String"/>
<property column="USER_FIRST_NAME" length="255" name="userFirstName" type="java.lang.String"/>
<property column="USER_LAST_NAME" length="255" name="userLastName" type="java.lang.String"/>
<property column="USER_EMAIL" length="255" name="userEmail" type="java.lang.String"/>
<property column="USER_CREATION_DATE" length="10" name="userCreationDate" type="java.util.Date"/>
<property column="USER_MODIFICATION_DATE" length="10" name="userModificationDate" type="java.util.Date"/>
</class>
</hibernate-mapping>

2) AppLabsUser.java
package src.hibernate;

import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang.builder.ToStringBuilder;

public class AppLabsUser implements Serializable {

private Long id;
private String userName;
private String userPassword;
private String userFirstName;
private String userLastName;
private String userEmail;
private Date userCreationDate;
private Date userModificationDate;


/** default constructor */
public AppLabsUser() {
}

/** full constructor */
public AppLabsUser(String userName, String userPassword, String userFirstName, String userLastName, String userEmail, Date

userCreationDate, Date userModificationDate) {
this.userName = userName;
this.userPassword = userPassword;
this.userFirstName = userFirstName;
this.userLastName = userLastName;
this.userEmail = userEmail;
this.userCreationDate = userCreationDate;
this.userModificationDate = userModificationDate;
}

public Long getId() {
return this.id;
}

public void setId(Long id) {
this.id = id;
}

public String getUserName() {
return this.userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getUserPassword() {
return this.userPassword;
}

public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}

public String getUserFirstName() {
return this.userFirstName;
}

public void setUserFirstName(String userFirstName) {
this.userFirstName = userFirstName;
}

public String getUserLastName() {
return this.userLastName;
}

public void setUserLastName(String userLastName) {
this.userLastName = userLastName;
}

public String getUserEmail() {
return this.userEmail;
}

public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}

public Date getUserCreationDate() {
return this.userCreationDate;
}

public void setUserCreationDate(Date userCreationDate) {
this.userCreationDate = userCreationDate;
}

public Date getUserModificationDate() {
return this.userModificationDate;
}

public void setUserModificationDate(Date userModificationDate) {
this.userModificationDate = userModificationDate;
}
public String toString() {
return new ToStringBuilder(this)
.append("UserID:", getId())
.append(" / Name:", getUserName())
.toString();
//return "User ID:"+id+" / Name:"+userName;
}

}


3) HibernateSessionFactory.java
package src.hibernate;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateSessionFactory
{
private static String CONFIG_FILE_LOCATION = "/testHibernate/src/hibernate.cfg.xml;";
public static SessionFactory sessionFactory;
static
{
try
{
// create the SessionFactory from hibernate.cfg.xml
sessionFactory= new Configuration().configure(CONFIG_FILE_LOCATION).buildSessionFactory();
}catch(Throwable ex)
{
System.out.println("Initial SessionFactory Creation Failed...!!!");
}
}
public static Session getHibernateSession() throws HibernateException
{
return sessionFactory.openSession();
}
}


4) testHibernate.java
package src.hibernate;

import org.hibernate.Session;

public class testHibernate
{
public static void main(String args[])
{
System.out.println("---- Starting Hibernate");
Session session = HibernateSessionFactory.getHibernateSession();
System.out.println("---- Hibernate Started..");
System.out.println("----Create User....");
AppLabsUser user01 = new AppLabsUser();
user01.setUserName("raminder.singh");
user01.setUserPassword("IGT");
user01.setUserFirstName("Raminder");
user01.setUserLastName("Singh");
user01.setUserEmail("r.s@igt.com");
System.out.println("----Save User....");
session.save(user01);
System.out.println("---- Closing Down Hibernate");
session.close();
HibernateSessionFactory.sessionFactory.close();
System.out.println("---- Hibernate Closed..");
}
}

5) hibernate.cfg.xml

<!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="show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLMyISAMDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/raminder</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">mysql</property>
<mapping resource="test/hibernate/AppLabsUser.hbm.xml"/>
</session-factory>
</hibernate-configuration>

6) log4j.properties
log4j.rootCategory=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p - %m%n

7) build.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<project name="TestHibernate" default="build" basedir=".">

<property name="dir" value="C:\Project\testHibernate"/>
<property name="home" value="${dir}"/>
<property name="build" value="${home}/build"/>
<property name="srcroot" value="${home}/src"/>
<property name="lib" value="${home}/lib"/>

<target name="build" depends="clean,init,compileJava,Deploy">
<echo message="---------------------------------------------------"/>
<echo message="** ** Build for testHibernate - Completed ** **"/>
<echo message="---------------------------------------------------"/>
</target>

<!-- deletes the build folder and other cleanup stuff -->
<target name="clean">
<!-- delete the root build folder -->
<delete dir="${build}/classes"/>
<delete dir="${build}"/>
</target>

<!-- create the root build folder -->
<target name="init" depends="clean">
<!-- create the time stamp and sets the dstamp, tstamp, and today properties in the current project -->
<tstamp>
<format property="build.datetime" pattern="MM/dd/yyyy hh:mm aa" unit="hour"/>
</tstamp>
<echo message="------------------------------------------------------------------"/>
<echo message="** ** Build for testHibernate - Started at ${build.datetime}"/>
<echo message="------------------------------------------------------------------"/>
<!-- create the root folder for the build process -->
<mkdir dir="${build}"/>
<mkdir dir="${build}/classes"/>
</target>

<!-- this task kicks off build for all the modules, the sequence of module is important here -->
<target name="compileJava" depends="init">

<path id="compileJars">
<pathelement location="${lib}/ant.jar"/>
<pathelement location="${lib}/cglib-2.1.2.jar"/>
<pathelement location="${lib}/commons-collections-2.1.1.jar"/>
<pathelement location="${lib}/commons-lang.jar"/>
<pathelement location="${lib}/commons-logging-1.0.4.jar"/>
<pathelement location="${lib}/dom4j-1.6.1.jar"/>
<pathelement location="${lib}/hibernate3.jar"/>
<pathelement location="${lib}/jdbc2_0-stdext.jar"/>
<pathelement location="${lib}/jta.jar"/>
<pathelement location="${lib}/log4j-1.2.11.jar"/>
<pathelement location="${lib}/mysql-connector-java-3.1.12-bin.jar"/>
<pathelement location="${srcroot}/hibernate.cfg.xml"/>
</path>

<!-- general module, contains common code which is required in many modules and doesn't fit under framework -->
<javac srcdir="${srcroot}" destdir="${build}/classes/" debug="true" classpathref="compileJars"/>
</target>

<target name="Deploy" depends="compileJava">
<copy file="${srcroot}/hibernate/AppLabsUser.hbm.xml" todir="${build}" />
<copy file="${srcroot}/hibernate.cfg.xml" todir="${build}" />
<copy file="${srcroot}/log4j.properties" todir="${build}" />
</target>
</project>
 
Raminder Singh
Ranch Hand
Posts: 72
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Sorry Folder Structure is:
/testHibernate
|
|+lib
|-ant.jar
|-cglib-2.1.2.jar
|-commons-collections-2.1.1.jar
|-commons-lang.jar
|-commons-logging-1.0.4.jar
|-dom4j-1.6.1.jar
|-hibernate3.jar
|-jdbc2_0-stdext.jar
|-jta.jar
|-log4j-1.2.11.jar
|-mysql-connector-java-3.1.12-bin.jar
|+src
|+hibernate
|-AppLabsUser.hbm.xml
|-AppLabsUser.java
|-HibernateSessionFactory.java
|-testHibernate.java
|-hibernate.cfg.xml
|-log4j.properties
|-build.xml
 
Raminder Singh
Ranch Hand
Posts: 72
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Now is right structure(was getting wrong on post):
/testHibernate
/testHibernate/build.xml

/testHibernate/lib
/testHibernate/lib/ant.jar
/testHibernate/lib/cglib-2.1.2.jar
/testHibernate/lib/commons-collections-2.1.1.jar
/testHibernate/lib/commons-lang.jar
/testHibernate/lib/commons-logging-1.0.4.jar
/testHibernate/lib/dom4j-1.6.1.jar
/testHibernate/lib/hibernate3.jar
/testHibernate/lib/jdbc2_0-stdext.jar
/testHibernate/lib/jta.jar
/testHibernate/lib/log4j-1.2.11.jar
/testHibernate/lib/mysql-connector-java-3.1.12-bin.jar

/testHibernate/src
/testHibernate/src/hibernate.cfg.xml
/testHibernate/src/log4j.properties

/testHibernate/src/hibernate
/testHibernate/src/hibernate/AppLabsUser.hbm.xml
/testHibernate/src/hibernate/AppLabsUser.java
/testHibernate/src/hibernate/HibernateSessionFactory.java
/testHibernate/src/hibernate/testHibernate.java
 
I am displeased. You are no longer allowed to read this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic