Hibernate+JPA dando erro [RESOLVIDO]

4 respostas
fredsilva.sistemas

Olá,
tenho que fazer um exemplo em Hibernate+JPA para a faculdade, só que ocorre um erro
Erro:
[color=red]
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.hibernate.cfg.Configuration.(Configuration.java:151)
at hibernate.Main.main(Main.java:23)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 2 more
Java Result: 1
[/color]

Classe Users:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity
@Table(name="APP.USERS")
public class Users implements java.io.Serializable{
    private static final long serialVersionUID = 1L;

    @Id    
    private Integer id;
    @Column()
    private String name;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    
    public Users() {
    }

    
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Users other = (Users) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 37 * hash + (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }

    public String toString(){
        return name;
    }

}
Classe Main:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 *
 * @author 8620016
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //Passa as configurações do Hibernate
        SessionFactory sessionFactory = new AnnotationConfiguration()
                .setProperty("hibernate.dialect", "org.hibernate.dialect.DerbyDialect")
                .setProperty("hibernate.connection.driver_class", "org.apache.derby.jdbc.ClientDriver")
                .setProperty("hibernate.connection.url", "jdbc:derby://localhost:1527/testehibernate")
                .setProperty("hibernate.connection.username","teste")
                .setProperty("hibernate.connection.password","teste")
                .setProperty("hibernate.show_sql","true")
                .setProperty("hibernate.format_sql","true")
                .setProperty("hibernate.c3p0.acquire_increment","1")
                .setProperty("hibernate.c3p0.idle_test_period","100")
                .setProperty("hibernate.c3p0.max_size","10")
                .setProperty("hibernate.c3p0.max_statements","0")
                .setProperty("hibernate.c3p0.min_size","5")
                .setProperty("hibernate.c3p0.timeout","100")
                .addAnnotatedClass(Users.class)
                .buildSessionFactory();
        Session session = sessionFactory.openSession();//Abre uma sessão
        session.beginTransaction();//Inicia uma transação

        //Implmentar aqui as funções da aplicação
        Users user = (Users) session.get(Users.class, 1);
        System.out.println("Usuário: "+user);

        session.getTransaction().commit();//Faz uma comit
        session.close();//Fecha uma conexão
        sessionFactory.close();
    }

}
Me parece que está faltando alguma lib no classpath. Lista de libs: [color=blue] hibernate3.jar antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar javassist-3.4.GA.jar jta-1.1.jar hibernate-cglib-repack-2.1_3.jar javassist-3.4.3GA.jar c3p0-0.9.1.jar hibernate-annotations.jar ejb3-persistence.jar hibernate-commons-annotations.jar hibernate-entitymanager.jar antlr.jar asm-attrs.jar asm.jar cglib.jar log4j.jar slf4j-log4j12.jar [/color] Já tentei adicionar algumas libs a mais, no entanto não surtiu efeito. Alguém tem uma idéia? Agradeço a ajuda! T+

4 Respostas

Jair_Rillo_Junior

Adiciona também o JAR do slf4j-api…

fredsilva.sistemas

Deu certo!
Mas no console aparece o seguinte:
[color=red] log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
[/color]
Vc sabe me dizer se esta observação é algum problema?
Valeu pela ajuda!

Jair_Rillo_Junior

Não… ele só não achou a configuração no log4j.
Você pode criar um log4j.properties no seu classpath e colocar essa configuração, mas nada grave

fredsilva.sistemas

Jair Rillo Junior:
Não… ele só não achou a configuração no log4j.
Você pode criar um log4j.properties no seu classpath e colocar essa configuração, mas nada grave

Jair, estou começando a utilizar o Hibernate, não entendo muita coisa ainda do framework, mas vc me ajudou bastante!
Valeu mesmo!
1 Abraço!

Criado 9 de junho de 2010
Ultima resposta 9 de jun. de 2010
Respostas 4
Participantes 2