[RESOLVIDO] Erro ao utilizar Hibernate + Tomcat 7.0 + Derby

Boa tarde galera!

Estou tentando aprender a utilizar o Hibernate, porém não estou conseguindo nem sequer inserir um registro!
O stacktrace é o seguinte:

Erro:

16/06/2011 13:29:46 org.hibernate.ejb.Version <clinit>
INFO: Hibernate EntityManager 3.2.1.GA
Exception in thread "main" java.lang.NoSuchMethodError: ch.qos.logback.classic.LoggerContext.getPropertyMap()Ljava/util/Map;
	at ch.qos.logback.classic.spi.LoggerContextRemoteView.<init>(LoggerContextRemoteView.java:41)
	at ch.qos.logback.classic.LoggerContext.<init>(LoggerContext.java:70)
	at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:67)
	at org.hibernate.cfg.SettingsFactory.<clinit>(SettingsFactory.java:72)
	at org.hibernate.ejb.Ejb3Configuration.<init>(Ejb3Configuration.java:126)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:119)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
	at br.com.gestaoescolar.aluno.model.TestaAluno.main(TestaAluno.java:9)

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
             http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
    <persistence-unit name="gestaoescolar">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>br.com.gestaoescolar.aluno.model.Aluno</class>

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
            <property name="hibernate.hbm2ddl" value="update"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>

            <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/GestaoEscolar"/>
            <property name="javax.persistence.jdbc.user" value="user"/>
            <property name="javax.persistence.jdbc.password" value="123"/>
        </properties>
    </persistence-unit>
</persistence>

Alguém poderia me ajudar?
Obrigado.

O stack trace diz que não foi possível encontrar o método getPropertyMap() na classe ch.qos.logback.classic.LoggerContext. O arquivo JAR correspondente à classe ch.qos.logback.classic.LoggerContext foi incluído na aplicação? Se o arquivo JAR tiver sido incluído, é uma versão suficientemente recente?

Olha amigo, no inicio era um outro erro, ai eu fui pesquisando e em cada coisa que eu pesquisava, era pedido para que eu adicionasse mais JARs.
Eu adicionei tanto JAR que nem sei mais o que deve ter e o que não deve ter ._.
Vou postar um printscreen de todos os JARs do meu projeto, tem como você dar uma olhada?

https://picasaweb.google.com/lh/photo/DfSUwdavvVZyC2Jecfrd9hhMlme9ESbV6y8xmfapbmY?feat=directlink

Obrigado novamente.

Niguém para ajudar?

Quais jars você adicionou?

Como eram vários, tirei um print de todos:
https://picasaweb.google.com/lh/photo/DfSUwdavvVZy...SbV6y8xmfapbmY?feat=directlink

Exclua todos e adicione os seguintes:
antlr-2.7.6
c3p0-0.9.1
commons-collections-3.1
dom4j-1.6.1
ehcache-1.5.0
hibernate3
hibernate-jpa-2.0-api-1.0.0.Final
hibernate-jpamodelgen-1.0.0.Final
javassist-3.9.0.GA
jta-1.1
log4j-1.2.15
slf4j-api-1.5.8
slf4j-log4j-1.5.8

Ou versões superiores.

Fiz o que você mandou, retirei todos os jars e coloquei somente os que você mandou.
Agora o erro é outro.

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named gestaoescolar
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
	at br.com.gestaoescolar.aluno.model.TestaAluno.main(TestaAluno.java:9)

Tem ideia do que possa ser?
Obrigado pela força :smiley:

[quote=drsmachado]Exclua todos e adicione os seguintes:
antlr-2.7.6
c3p0-0.9.1
commons-collections-3.1
dom4j-1.6.1
ehcache-1.5.0
hibernate3
hibernate-jpa-2.0-api-1.0.0.Final
hibernate-jpamodelgen-1.0.0.Final
javassist-3.9.0.GA
jta-1.1
log4j-1.2.15
slf4j-api-1.5.8
slf4j-log4j-1.5.8

Ou versões superiores.[/quote]

Colocou todos?

Coloquei sim.
Agora que dei refresh no projeto, o erro é outro:


log4j:WARN No appenders could be found for logger (org.hibernate.type.BasicTypeRegistry).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named gestaoescolar
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
	at br.com.gestaoescolar.aluno.model.TestaAluno.main(TestaAluno.java:9)
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named gestaoescolar  

Tá usando o netbeans ou eclipse?
Com anotações ou xml?

Estou usando o Eclipse.
Fiz anotações na classe modelo Aluno (que é o objeto que quero inserir no banco).

Vou postar aqui os códigos.

Aluno

package br.com.gestaoescolar.aluno.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Aluno {
    private int id;
    private String nome;

    public Aluno() {
        // TODO Auto-generated constructor stub
    }

    @Id
    @GeneratedValue
    public int getId() {
        return id;
    }

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

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
}

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
             http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
    <persistence-unit name="gestaoescolar">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>br.com.gestaoescolar.aluno.model.Aluno</class>

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
            <property name="hibernate.hbm2ddl" value="update"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>

            <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/GestaoEscolar"/>
            <property name="javax.persistence.jdbc.user" value="user"/>
            <property name="javax.persistence.jdbc.password" value="123"/>
        </properties>
    </persistence-unit>
</persistence>

Bom, não entendo por que você mapeia a gestaoescolar e não coloca anotações nela… Nem mesmo o java entende isso…

<persistence-unit name="gestaoescolar"> 

As anotações não são somente na classe?
Devo ter anotações em mais algum lugar?
Agora estou confuso ._.

Boa tarde pessoal.
Gostaria de avisar que consegui resolver o problema.
O que ocorria é que o arquivo persistence.xml deve estar dentro da pasta [B]META-INF[/B], dentro de src.
Demorei mas consegui fazer funcionar o exemplo \o/
Obrigado!

Boa Tarde galera,

Eu estou exatamente com o mesmo problema, os jars estão corretos e o meu persistence.xml esta na pasta META-INF dentro da pasta src.
quando eu rodo um main apenas para testar a conexão com o banco recebo a seguinte exceção.

javax.persistence.PersistenceException: No Persistence provider for EntityManager named UberSoft
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at br.com.projeto.jsf.uber.util.JPAUtil.buildEntityManager(JPAUtil.java:11)
at br.com.projeto.jsf.uber.util.JPAUtil.getEntityManager(JPAUtil.java:20)
at TesteConexao.testaJPAConnection(TesteConexao.java:22)
at TesteConexao.main(TesteConexao.java:15)
Exception in thread “main” java.lang.NullPointerException
at TesteConexao.testaJPAConnection(TesteConexao.java:29)
at TesteConexao.main(TesteConexao.java:15)

Eu fiz uma conexão direta com o hibernate usando um hibernate.cfg.xml e consegui a conexão normalmente, só utilizando o persistence.xml é que não consigo fazer a conexão.
Não sei se eu preciso dos dois arquivos ou se está faltando alguma coisa, minhas classes estão todas anotadas.

estou testando a conexão desta forma:

		public static void main(String[] args) {
			
//			testaHibernateConnection();
//			
			testaJPAConnection();
		
		}

		private static void testaJPAConnection() {
			EntityManager em = null;
			try{
				em = JPAUtil.getEntityManager();
				System.out.println("Conectou");
			}
			catch (Exception e) {
				e.printStackTrace();
			}
			finally{
				em.close();
			}
			
		}

meu JPAUtil esta assim

public class JPAUtil {

	private static EntityManager em;
	
	private static EntityManager buildEntityManager() throws Exception {
		 return em = Persistence.createEntityManagerFactory("UberSoft").createEntityManager();
	}
	
	private JPAUtil() {
		
	}
	
	public static EntityManager getEntityManager() throws Exception{
		if(em == null){
			em = buildEntityManager();
		}
		return em;
	}
}

Meu Persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 
							xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
							xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
	
	<persistence-unit name="UberSoft" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<non-jta-data-source>UberSoft</non-jta-data-source>
	
		<class>br.com.projeto.jsf.uber.negocio.to.Produto</class>
		<class>br.com.projeto.jsf.uber.negocio.to.Item</class>
		<class>br.com.projeto.jsf.uber.negocio.to.NotaFiscal</class>
		
		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver"/>
			<property name="javax.persistence.jdbc.url" value= "jdbc:db2://srv2k3_db2:50000/CriarTO"/>
			
			<property name="javax.persistence.jdbc.user" value="DB2PCN" />
			<property name="javax.persistence.jdbc.password" value="68423179"/>
			
			<property name="hibernate.hbm2dll.auto" value="update"/>
			<property name="hibernate.show_sql" value="true"/>
			<property name="hibernate.format_sql" value="true"/>
			<property name="hibernate.generate_statistics" value="true"/>
			<property name="hibernate.use_sql_comments" value="true"/>
			<property name="hibernate.current_session_context_class" value="thread"/>

		</properties>
	</persistence-unit>
	
	
</persistence>

O meu projeto usa JSF 2.0, JPA2, e Hibernate3 e os jars que eu possuo são:

DB2 jars:
db2jcc.jar
db2jcc_license_cu.jar
db2jcc_license_cisuz.jar
db2java.jar

primefaces jars:
primefaces-2.2.1.jar

mojarra jars:
javax.faces.jar

jpa jars:
hibernate-jpa-2.0-api-1.0.1.Final.jar

hibernate jars:
persistence.jar
jta.jar
hibernate-tools.jar
hibernate-annotations.jar
hibernate3.jar
dom4j-1.6.1.jar
commons-logging-1.0.4.jar
commons-collections-2.1.1.jar
cglib-2.1.jar
asm.jar
antlr-2.7.6.jar