Hibernate -> NoClassDefFoundError

7 respostas
passos

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>

7 Respostas

ricardolecheta

faltou o jta.jar no classpath

passos
ricardolecheta:
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

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;
    }
}
ricardolecheta

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

C
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:
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);
            
         }
     }
        
}
fenrir

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.

C

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…

Trevisani

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.

Criado 25 de janeiro de 2005
Ultima resposta 27 de mar. de 2007
Respostas 7
Participantes 5