Hibernate -> NoClassDefFoundError

Estou desenvolvendo um exemplo bem bobo com o hibernate mas estou recebendo o erro:

Exception in thread “main” java.lang.NoClassDefFoundError: javax/transaction/Synchronization

Será que estou esquecendo de alguma lib?

Por via das duvidas segue meu hibernate.cfg.xml

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

<hibernate-configuration>
    <session-factory >

		<!-- local connection properties -->
		<property name="hibernate.connection.url">aqui ta minha url certinha</property>
		<property name="hibernate.connection.driver_class">com.informix.jdbc.IfxDriver</property>
		<property name="hibernate.connection.username">usuario</property>
		<property name="hibernate.connection.password">senha</property>
		<!-- property name="hibernate.connection.pool_size"></property -->

		<!-- dialect for Informix -->
        <property name="dialect">net.sf.hibernate.dialect.InformixDialect</property>

        <property name="hibernate.show_sql">false</property>
        <property name="hibernate.use_outer_join">true</property>
        <property name="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property>
        <property name="jta.UserTransaction">java:comp/UserTransaction</property>

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

faltou o jta.jar no classpath

Era isso mesmo, ao jogar essa lib pra la recebi: java.lang.UnsupportedOperationException: The user must supply a JDBC connection

Ele consegue abrir a conexão mas não consegue dar o retrive

[code]
public class HiberX {

private SessionFactory factory;

public HiberX() throws Exception {
    Configuration cfg = new Configuration().addClass(bean.Cliente.class);
    factory = cfg.buildSessionFactory();
}

public Cliente retrieve(String pk) throws Exception {
    Session session = factory.openSession();
    Cliente cliente = (Cliente) session.load(bean.Cliente.class, pk);
    session.flush();
    session.close();
    return cliente;
}

}[/code]

vc precisa configurar o hibernate.properties corretamente para o hibernate conseguir conectar no banco…

não consigo entender pq deste erro, alguém pode me ajudar??

Exception in thread "main" java.lang.NoClassDefFoundError: estudo/amigoDAO

Aí vai meu amigoDAO:

[code]package Estudo;

import estudo.amigo;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;

/**
*

  • @author root
    */
    public class amigoDAO {

    private SessionFactory factory;
    private Hibernate hibernate;

    /** Creates a new instance of amigoDAO */

    public amigoDAO() throws Exception {
    Configuration cfg = new Configuration();
    cfg.addClass(amigo.class);
    factory = cfg.buildSessionFactory();

    }

    public void insert(amigo friend) throws Exception {
    Session session = factory.openSession();
    session.save(friend);
    session.flush();
    session.close();
    }

    /* public java.util.List getList(String condicao) throws Exception{
    Session session = factory.openSession();
    List amigos = session.find(condicao);
    session.flush();
    session.close();
    return amigos;
    }*/

    public amigo retrieve(String pk) throws Exception{
    Session session = factory.openSession();
    amigo friend = (amigo)session.load(amigo.class, pk);
    session.flush();
    session.close();
    return friend;
    }

    public void delete(amigo friend) throws Exception{
    Session session = factory.openSession();
    session.delete(friend);
    session.flush();
    session.close();
    }

    public static void main (String a[]) {
    amigo b = new amigo();
    b.setNome(“teste”);
    b.setEndereco(“testeend”);

      try {
         amigoDAO ad = new amigoDAO();
         ad.insert(b);
         System.out.println("..."+b.getEndereco());
      } catch (Exception e) {
         System.out.println(""+e);
         
      }
    

    }

}[/code]

No Java, Estudo é diferente de estudo. :wink:

E por padrão, nomes de packages não possuem letras maiúsculas, ou pelo menos não começam com tal.

valeu,

é q eu confundi o nome do projeto com o nome do pacote…
iniciante é fogo…

outra coisinha como se faz o “select” no hibernate, seria com o find?
é o método getList do exemplo do amigoDAO? a função ‘find’ não é reconhecida…
e pra q serve o retrieve? fiz alguns testes, mas não peguei a idéia…

Como assim não é reconhecida?

O retrive ali chama a função load que vai carregar um registro do banco, usando a ‘pk’ que tu está passando no parâmetro. Até onde eu sei, essa ‘pk’ é definida no hbm.xml.