Erro iniciante com Hibernate 3

Olá boa tarde a todos.

Estou iniciando com o hibernate e na documentação presente no site tem o exemplo de uso do mesmo, baixei tanto o pdf como também o framework, porem ao fazer o exemplo, demonstrado na documentação (igualzinho) ele apresenta o seguinte erro sobre esta linha:

sessionFactory = new Configuration().configure().buildSessionFactory();
/*
Apresenta o erro:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Erro ai iniciar sessão. Do Hibernate UTIL java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
        at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
        at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
        at com.paulopatto.lab.exercicios.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:10)
        at com.paulopatto.lab.exercicios.hibernate.control.GerenciadorDeEventos.main(GerenciadorDeEventos.java:22)
*/

Bem essa org.slf4j.impl.StaticLoggerBinder não existe no .jar baixado junto com o hibernate, olhei o site http://www.slf4j.org/codes.html#StaticLoggerBinder como manda mas ai ele indica outros JAR que não vem com o Hibernate, baixei o SL4J, porem quando uso outro dos jar (que tenham a bendita classe org.slf4j.impl.StaticLoggerBinder) ele apresneta o erro:

java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
        at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
        at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
        at com.paulopatto.lab.exercicios.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:10)
        at com.paulopatto.lab.exercicios.hibernate.control.GerenciadorDeEventos.main(GerenciadorDeEventos.java:22)

Mesmo que eu retire o jar, que vem na pasta requerid do hibernate ele continua com esse erro, será que alguem tem uma sugestão, já enfretou esse problema?

Obrigado.

Você baixou todos os jars que são listados no site do Hibernate?

Rafael, bom dia obrigado por sua resposta. Mas eu me direcionei a este site http://www.hibernate.org/6.html fiz o downloado do zip referente ao Hibernate Core (assim como manda a documentação), dentro do zip existem vários JARS eles estão separados em pastas onde umas são requerid, outras optional e por ai vai, do pacote requerido eu adicionei todas ao classpath do projeto. A não ser que tenha algo mais que deva ser baixado, mas no exemplo da apostila do próprio hibernate eles tão usando só o jar do core e tá ido beleza no deles. Eles adicionam também o slf4j, mas com o ANT pelo que eles mostram tá indo beleza.
Já tentei adicionar todos os jars do zip no classpath mas nada, ai retirei os jars que não são requeridos. Fui no site indicado na exception e segui os passos para solucionar o problema mas ai o erro muda mas persiste. Será que tenho de fazer algo mais?

Oi Paulo,

esse erro é falta de jars no classpath. Siga novamente todos os passos do site do Hibernate e certifique-se que você não esteja esquecendo de nenhum passo e que o seu ambiente esteja correto.

Olá Rafael, bem remontei aqui o classpath mas continua dadno erro. Como ele requer essa classe org.slf4j.impl.StaticLoggerBinder no jar do slf4j não existem nem se quer esse pacote impl e tão pouco a classe StaticLoggerBinder. No site do slf4j existem outros jars como o NOP o Simple e por ai vai. Neste esse pacote e classe exitem mas ai dá o erro de tentativa de acesso a StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory.
Sei que um framework conhecido e ronomado como hibernate não viria com erro mas eu tentei seguir um exemplo de hibernate 3 aqui do GUJ e o memso erro é apresentado. Mas poxa, não pode ser download corrompido pois já baixei várias vezes esse framework. Tera alguma outra sugestão Rafa?

Eu ainda acho que é problema no seu classpath.

Como alternativa, você pode encontrar um exemplo (com códigos e jars) como esse: http://www.roseindia.net/hibernate/runningexample.shtml

Rafa, cara já devo tá roendo a sua paciência, mas…
Eu acho que a versão que a Roseindia usa é diferente da minha, eu estou usando o 3.3.1.GA e o dela nõa sei qual é. Eu fiz o download do exemplo dela e até os JARS tem tamanhos muito diferentes assim como a exigencia de Loggin do exemplo dela ser o Commons Loggin e atualmente o hibernate 3.3.1.GA que eu tenho usa um tal de slf4j(http://www.slf4j.org/).
Será que estes ultimos releases do hibernate algo mudo? Vou fazer novos testes aqui mas ainda nenhum resutado por enquanto.

[:(]

É o exemplo dela funciona, apensar de parecer que o hibernate funciona de modo diferente. Como por exemplo nem o SLF4J existe neste pacote aqui!

Oi Paulo,

relaxa, estamos aqui para isso. Eu ainda (continuo) achando que é problema no seu classpath. :slight_smile:

Tente achar algum exemplo na internet com a mesma versão que você está usando para fazer um comparativo.

Só uma dúvida, eu posso usar o hibernate com aplicações SWING tbm? Se sim em que diretório devo colocar o hibernate.cfg.xml?

Pode sim. Na documentação do Hibernate deve ter um exemplo, até porque você pode especificar o caminho do XML, desde que este esteja acessível a aplicação (no classpath).

Veja: http://www.laliluna.de/first-hibernate-example-tutorial.html

E você saberia me informar como eu faço para indicar o local deste hibernate.cfg.xml especificamente, pois em uma aplicação Desktop ele apresenta /hibernate.cfg.xml not found
mas até onde eu saiba o hibernate.cfg.xml tem de ficar na raiz do projeto não?

Isso, o arquivo tem que ficar onde os .class ficam. Com isso, você pode utilizar o método getResourceAsStream() para obter esse arquivo.

O hibernate não procura e tenta carregar ele automáticamente não?

Trecho da documentação oficial do HIBERNATE

Na verdade você carrega para o Hibernate.

Sendo assim eu tenho o hibernate.cfg.xml, mas ele não está encontrando. Eu devo usar algum método para carregar o arquivo xml. E qual o método, classe ou propriedade onde seto o endereço deste arquivo para ele carregar, porque pelo que venho vendo ele não acha esse xml aqui no netbeans. Apesar de que no exemplo que eu to fazendo com um projeto web, ele aparentemente acha. Pensei de um do métodos addXml mas creio que não vai por eles não.

Veja: http://www.guj.com.br/posts/list/66730.java#351278

Initial SessionFactory creation failed.java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
Exception in thread "main" java.lang.ExceptionInInitializerError
        at com.paulopatto.lab.exercicios.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:26)
        at com.paulopatto.lab.exercicios.hibernate.model.TesteHibernate.main(TesteHibernate.java:10)
Caused by: java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
        at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
        at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
        at com.paulopatto.lab.exercicios.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:22)

Não é possível, meu to fazendo como os tutoriais mandam, quando resolve o problema de implementação com essa slf4j ai entra essa exceção, não é possível que eu seja tão burro.