Unable to configure EntityManagerFactory [Resolvido]

17 respostas
L

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

<?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="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>
</persistence>

minha classe anotada:

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;
	}

}
Classe que estou executando
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();
		}

	}
}
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 !

17 Respostas

D

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">

L

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>

D

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

L

Obrigado !

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

D

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

L

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.

L

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)

D
<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

L

Consegui drsmachado!

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

:thumbup:

D

leonardoterrao:
Consegui drsmachado!

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

:thumbup:

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

Abraço

L

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: [url]http://ge.tt/9Le0B8B?c[/url]

<?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.server.Contato</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/gwt"/>
         <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>
Obrigado! Leonardo Terrão.
D
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: [url]http://ge.tt/9Le0B8B?c[/url]

<?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.server.Contato</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/gwt"/>
         <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>
Obrigado! Leonardo Terrão.

Beleza, camarada.

S

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

L

https://rapidshare.com/files/[telefone removido]/HibernateJPA.rar

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

S

Obrigado

R

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. ><

F

Onde está a lib ?

Link quebrado.

Criado 13 de dezembro de 2011
Ultima resposta 2 de set. de 2014
Respostas 17
Participantes 5