Ajuda hibernate

8 respostas
rafaelralfi

Boa noite, não possuo nenhuma experiência com HIBERNATE,
e seguindo alguns tutoriais que encontrei construi a classe de conexão;
e sempre que vou rodar o software gera este erro,

deps-jar:

Copying 1 file to E:\BancoDeDados2\TesteComHibernate\build\classes

compile:

run:

Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

at org.hibernate.cfg.Configuration.(Configuration.java:151)

at Conexao.getSessionFactory(Conexao.java:22)

at Main.main(Main.java:19)

Java Result: 1

gostaria de saber se algum dos amigos pode me ajudar.
Rafael Vieira
[email removido]

8 Respostas

rodrigo_rosalin

este problema esta relacionado a falta de alguma API no seu classpath.

http://www.findjar.com/class/org/slf4j/impl/StaticLoggerBinder.html
baixe o jar adequado e coloque no seu ClassPath

rafaelralfi

Amigo obrigado pela ajuda adicionei os jar’s do SLF4j, mas só para curiosidade já havia feito isto uma outra vez e também não havia funcionado,
bom, adicionei os seguintes JAR’s

jcl-over-slf4j1.5.6.jar
integration-1.5.6.jar
ju-to-slf4j.jar
loj4j-over-slf4j-1.5.6.jar
slf4j-api.jar
slf4j-ext-1.5.6.jar
slf4j-jcl-1.5.6.jar
slf4j-jdk-1.5.6.jar
slf4j-log4j12-1.5.6.jar
slf4j-migrator-1.5.6.jar
slf4j-nop-1.5.6.jar
slf4j-simple-1.5.6.jar

O Erro gerado agora é este

Exception in thread main java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory

at org.slf4j.LoggerFactory.(LoggerFactory.java:60)

at org.hibernate.cfg.Configuration.(Configuration.java:151)

at hibernate.HibernateUtil.(HibernateUtil.java:18)

at hibernate.Main.main(Main.java:29)

Java Result: 1

por acaso vc não tem algum projeto simples nem que esteja mapeado para apenas uma tabela, pois já fazem alguns dias que estou com este problema,
inclusive já fiz testes adicionando todos os pacotes do hibernate mais doi SLF4j e sempre estes erros =/

J
Arquivo Hibernate.cfg.xml, coloca junto com suas classes
<?xml version="1.0" encoding="UTF-8" ?> 
  <!DOCTYPE hibernate-configuration (View Source for full doctype...)> 
- <hibernate-configuration>
- <session-factory>
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
  <property name="hibernate.connection.password">123456</property> 
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/banco</property> 
  <property name="hibernate.connection.username">root</property> 
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
  <property name="show_sql">true</property> 
  <property name="format_sql">true</property> 
  <mapping class="domain.MinhaClasse" /> 

  </session-factory>
  </hibernate-configuration>
HibernateUtil.java - Tem varios na net
import org.hibernate.Session;  
   import org.hibernate.SessionFactory;  
   import org.hibernate.cfg.Configuration;  
   public class HibernateUtil {  
       private static SessionFactory factory;  
       static {  
           try {  
               factory = new Configuration().configure().buildSessionFactory();  
           } catch (Exception e) {  
               e.printStackTrace();  
               factory = null;  
           }  
       }  
         
       public static Session getSession() {  
           return factory.openSession();  
     }  
 }

Coloca os jars do site do hibernate
hibernate-3.2.0.ga.jar
hibernate-annotations-3.2.0.ga.jar
hibernate-commons-annotations-3.3.0.ga.jar
persistence-api-1.0.jar

Se pedir mais algum jar vc tem que colocar, porem os zips
do hibernate vem com tudo

rafaelralfi

Fiz tudo como dito mas continua o mesmo erro, será que pode ser algo relacionado ao arquivo de configuração estar incorreto ou não estar sendo localizado no CLASS-PATH já ando meio no desespero, este erro é bastante estranho…

run:

Exception in thread main java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory

Existe        at org.slf4j.LoggerFactory.(LoggerFactory.java:60)

at org.hibernate.cfg.Configuration.(Configuration.java:151)

at hibernate.HibernateUtil.(HibernateUtil.java:22)

at hibernate.Main.main(Main.java:29)

Java Result: 1

CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)
J

Posta seu hibernate.cfg.xml e o HibernateUtil, se voce alterou nao deveria estar chamando o SLF4j.

R

Esse campo que a aplicação está tentando acessar e não consegue está disponível até a versão 1.5.2 do SLF4J, use esta versão em vez da mais recente:

http://www.slf4j.org/dist/slf4j-1.5.2.tar.gz

rafaelralfi

quanto a aquele erro era bem isto muito obrigado agora vou tentar o resto das configurações ahha

benflodin

Remova todos os jars referentes ao slf4j em seguida baixe a versão atual e coloca na sua aplicação só os seguintes jars:

slf4j-api-XXXX.jar
slf4j-log4j12-XXXX.jar

Criado 11 de junho de 2009
Ultima resposta 12 de jun. de 2009
Respostas 8
Participantes 5