Boa tarde!
Estou estudando Hibernate e tentando persistir uma classe “Message” bem simples, uma exceção ocorre quando tento rodar.
vou colocar o codigo pra ficar mais fácil de visualizar, a exceção ta lá em baixo.
Esta é a classe Message
package hello;
public class Message
{
private long id;
private String text;
private Message nextMessage;
Message(){}
public Message(String text)
{
this.text = text;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Message getNextMessage() {
return nextMessage;
}
public void setNextMessage(Message nextMessage) {
this.nextMessage = nextMessage;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
Criei um classe HibernateUtil
package persistence;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class HibernateUtil
{
private static SessionFactory sessionFactory;
static
{
try
{
sessionFactory = new Configuration().buildSessionFactory();
}catch(Throwable ex)
{
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
public static void shutdown()
{
getSessionFactory().close();
}
}
o meu mapeamente é esse
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Document : mapeteste.xml
-->
<hibernate-mapping>
<class
name= "hello.Messsage"
table= "MESSAGES">
<id
name="id"
column="MESSAGE_ID">
<generator class ="increment"/>
</id>
<property
name="text"
column="MESSAGE_TEXT"/>
<many-to-one
name="nextMessage"
cascade="all"
column="NEXT_MESSAGE_ID"
foreign-key="FK_NEXT_MESSAGE"/>
</class>
</hibernate-mapping>
Minha Classe que contém main
package hello;
import java.util.Iterator;
import java.util.List;
import org.hibernate.*;
import persistence.*;
public class Hello
{
public static void main(String args[])
{
//primeira unidade
Session session =
HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Message message = new Message("Hello Word");
Long msdId = (Long) session.save(message);
tx.commit();
session.close();
//segunda unidade
Session newSession =
HibernateUtil.getSessionFactory().openSession();
Transaction newTransaction = newSession.beginTransaction();
List messages =
newSession.createQuery("from Message m order by m.text asc").list();
System.out.println(messages.size() + "messages found: ");
for(Iterator iter = messages.iterator(); iter.hasNext();)
{
Message loadedMsg = (Message) iter.next();
System.out.println(loadedMsg.getText());
}
newTransaction.commit();
HibernateUtil.shutdown();
}
}
e meu arquivo de configuração do hibernate
<!DOCTYPE hibernate-configuration SYSTEM
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!--
Document : hibernate.cfg.xml
-->
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">
jdbc:mysql://localhost
</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">2050</property>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<-Conection pool c3p0->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping resource="hello/Message.hbm.xml"/>
</session-factory>
</hibernate-configuration>
A exceção é esta:
Exception in thread "main" java.lang.ExceptionInInitializerError
at persistence.HibernateUtil.<clinit>(HibernateUtil.java:29)
at hello.Hello.main(Hello.java:22)
Caused by: java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at persistence.HibernateUtil.<clinit>(HibernateUtil.java:25)
... 1 more
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 2 more
Java Result: 1
Se alguem tiver alguma dica agradeço desde já!
to usando o Netbeans.
abraço
