Unable to configure EntityManagerFactory [Resolvido]

Olá pessoal! estou tentando fazer um exemplo com JPA e Hibernate mas entrei em um erro onde estou parado !

Qual seria a saída para este erro !?

0 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final 16 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.5.Final 16 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 16 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 31 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 110 [main] INFO org.hibernate.ejb.Version - Hibernate EntityManager 3.6.5.Final 875 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: caelum.virtual.gwt.client.Editora 953 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity caelum.virtual.gwt.client.Editora on table editora 1016 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring javax.persistence.PersistenceException: [PersistenceUnit: JPA] Unable to configure EntityManagerFactory at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:378) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32) at caelum.virtual.gwt.server.GeraTabelas.main(GeraTabelas.java:23) Caused by: org.hibernate.HibernateException: Unable to get the default Bean Validation factory at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:127) at org.hibernate.cfg.Configuration.applyBeanValidationConstraintsOnDDL(Configuration.java:1704) at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1654) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1445) at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375) at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1519) at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1100) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:282) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:366) ... 4 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:118) ... 13 more Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:383) at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:109) ... 18 more Caused by: javax.validation.ValidationException: Unable to find a default provider at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:264) at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111) at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:380) ... 19 more

meu pesistence.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

<persistence-unit name="JPA" transaction-type="RESOURCE_LOCAL">
	<provider>org.hibernate.ejb.HibernatePersistence</provider>
	<properties>
		<property name="hibernate.show_sql" value="true" />
		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/gwt" />
		<property name="javax.persistence.jdbc.user" value="root" />
		<property name="javax.persistence.jdbc.password" value="root" />
		<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		<property name="hibernate.hbm2ddl.auto" value="update" />
	</properties>
</persistence-unit>
[/code]

minha classe anotada:

[code]package caelum.virtual.gwt.client;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@SuppressWarnings(“serial”)
@Entity
@Table(name=“contato”)
public class Contato implements Serializable{

@Id 
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column
private String nome;
@Column
private String email;

public Long getId() {
	return id;
}
public void setId(Long id) {
	this.id = id;
}
public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}

}
[/code]

Classe que estou executando

[code]package caelum.virtual.gwt.server;

import javax.persistence.Persistence;

public class GeraTabelas {

public static void main(String[] args) {

	try {

		Persistence.createEntityManagerFactory("JPA");

	} catch (Exception e) {
		e.printStackTrace();
	}

}

}
[/code]

Aqui as bibliotecas q estou utilizando

antlr-2.7.6.jar c3p0-0.9.1.jar cglib-2.2.jar commons-collections-3.1.jar dom4j-1.6.1.jar ejb3-persistence.jar gwt-servlet.jar hibernate-entitymanager-3.5.0.Beta-1.jar hibernate-jpa-2.0-api-1.0.1.Final.jar lib/hibernate-testing.jar hibernate-validator-3.0.0.ga.jar hibernate3.jar infinispan-core-4.2.1.CR1.jar javassist-3.12.0.GA.jar jbosscache-core-3.2.1.GA.jar jta-1.1.jar log4j-1.2.16.jar mysql-connector-java-5.1.18-bin.jar oscache-2.1.jar proxool-0.8.3.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar

Desde já agradeço pela ajuda pessoal !

Faltou dizer qual a classe que está mapeada, não??

<class>br.com.pacote.da.classe.ClasseMapeada</class>  

Logo abaixo de

<persistence-unit name="JPA" transaction-type="RESOURCE_LOCAL">

Obrigado drsmachado!

adicionei o caminho da minha classe abaixo do provider, antes o eclipse acusa erro! testei e o erro ainda continua entao troquei a versao do hibernate, agora estou utilizando o 4.0 mas ainda está dando o mesmo erro :x

<?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="JPA" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>virtual.gwt.jpa.client.Contato</class> <properties> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/gwt" /> <property name="javax.persistence.jdbc.user" value="root" /> <property name="javax.persistence.jdbc.password" value="root" /> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.show_sql" value="true" /> </properties> </persistence-unit> </persistence>

Pode informar qual a linha referenciada no stackTrace?

at caelum.virtual.gwt.server.GeraTabelas.main(GeraTabelas.java:23) 

Ah, mantenha a versão antiga do Hibernate.
E, no dialect, coloque apenas org.hibernate.dialect.MySQLDialect

Obrigado !

Vou voltar a versao do hibernate e mudar o dialect e testar… Abaixo está o conteudo da classe GeraTabelas.java:23

Camarada, analisando o problema e pesquisando no google, pude identificar que pode ser algum jar faltando.

Tenta com estes jars que estão aqui http://ge.tt/9Le0B8B?c e me diz se funcionou

Muito Obrigado drsmachado!

aqui está bloqueado para eu baixar a lib que vc me passou, mas assim que eu chegar em casa vou testar elas…
Já pesquisei alguns links no Google sobre o erro, descobri que é um erro genérico, pode ser causado por várias ocasiões :x
na maioria das vezes é causado em classes que possuem relacionamento, pode ser também o arquivo de pesistencia.xml errado,
jar faltando ou incompatível… Vou continuar pesquisando aqui e se achar a solução vou postar aqui ! Esse deve ser daqueles erros “bobo” que está na minha frente e eu não estou vendo …

Muito Obrigado !
Leonardo Terrão.

drsmachado, conseguir baixar sua lib e sair daquele erro, provavelmente era algum .jar com problema!

agora ta dando outro erro, vou dar uma olhada melhor o que pode ser dessa vez !

vai o erro se alguém já poder dar uma dica!

... 1484 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export 1484 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database 1484 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - schema export unsuccessful java.lang.UnsupportedOperationException: The user must supply a JDBC connection at org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54) at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51) at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:252) at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:211) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:343) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1327) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34) at virtual.gwt.jpa.server.GeraTabela.main(GeraTabela.java:12)

<persistence>
   <persistence-unit name="livraria" transaction-type="RESOURCE_LOCAL">
	  <class>br.com.elaborata.entities.Autor</class>
	  <class>br.com.elaborata.entities.Livro</class>
      <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
         <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
         <property name="hibernate.connection.username" value="root"/>
         <property name="hibernate.connection.password" value="root"/>
         <property name="hibernate.connection.url" value="jdbc:mysql://localhost/jpa"/>
         <property name="hibernate.max_fetch_depth" value="3"/>
         <property name="hibernate.format_sql" value="true" />
         <property name="hibernate.use_sql_comments" value="false" />
         <property name="hibernate.hbm2ddl.auto" value="create" />
         <property name="hibernate.show_sql" value="true" />
         <property name="hibernate.jdbc.batch_size" value="50" />
       
         <!-- alternatively to <class> and <property> declarations, you can use a regular hibernate.cfg.xml file -->
         <!-- property name="hibernate.ejb.cfgfile" value="/org/hibernate/ejb/test/hibernate.cfg.xml"/ -->
      </properties>
   </persistence-unit>
</persistence>

Este é o meu persistence.xml
Está bem diferente do teu, mas tenho certeza que funciona.
Tenta com ele, alterando ali as classes

Consegui drsmachado!

Muito Obrigado pela ajuda, agora que está funcionando vou explorar um pouco !

:thumbup:

[quote=leonardoterrao]Consegui drsmachado!

Muito Obrigado pela ajuda, agora que está funcionando vou explorar um pouco !

:thumbup: [/quote]

Então, compartilha com a galera o que fez para resolver.

Abraço

Peguei a lib que vc me passou e seu arquivo persistence.xml e fiz as alterações para funcionar de acordo com meu projeto e ficou 10!

Lib: http://ge.tt/9Le0B8B?c

[code]<?xml version="1.0" encoding="UTF-8"?>


org.hibernate.ejb.HibernatePersistence
virtual.gwt.jpa.server.Contato











     <!-- alternatively to <class> and <property> declarations, you can use a regular hibernate.cfg.xml file -->
     <!-- property name="hibernate.ejb.cfgfile" value="/org/hibernate/ejb/test/hibernate.cfg.xml"/ -->
  </properties>
[/code] Obrigado! Leonardo Terrão.

[quote=leonardoterrao]Peguei a lib que vc me passou e seu arquivo persistence.xml e fiz as alterações para funcionar de acordo com meu projeto e ficou 10!

Lib: http://ge.tt/9Le0B8B?c

[code]<?xml version="1.0" encoding="UTF-8"?>


org.hibernate.ejb.HibernatePersistence
virtual.gwt.jpa.server.Contato











     <!-- alternatively to <class> and <property> declarations, you can use a regular hibernate.cfg.xml file -->
     <!-- property name="hibernate.ejb.cfgfile" value="/org/hibernate/ejb/test/hibernate.cfg.xml"/ -->
  </properties>
[/code] Obrigado! Leonardo Terrão.[/quote]

Beleza, camarada.

Vocês poderiam dizer quais são as libs? estou com o mesmo problema e o link está expirado

https://rapidshare.com/files/1552826122/HibernateJPA.rar

ai está a lib que eu uso, tá funcionando beleza!

Obrigado

Link novamente expirado :C

Alguém poderia me disponibilizar a lib? Também estou quebrando a cabeça com esses erros, e vi nessa lib e no .xml sugerido, uma esperança. ><

Onde está a lib ?

Link quebrado.