Ao Executar classe com Hibernate e JPA - java.lang.ExceptionInInitializerError

32 respostas
programaçãojava
A

Pessoal alguem saberia o motivo do erro , já verifiquei o persistence.xml esta ok , uso o maven tambem esta ok , fiz uma tela de login e funciona porem ao criar uma tela de insert da este erro :

Exception in thread main java.lang.ExceptionInInitializerError

at br.com.fecorp.reinf.DAO.DaoGenerico.(DaoGenerico.java:10)

at br.com.fecorp.testclasse.InsertApplication.main(InsertApplication.java:13)

Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named PersistenciaPU

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)

32 Respostas

E

Verifique se no seu persistence.xml o persistence provider esta com o nome PersistenciaPU.

Veja: SOLUÇÃO- Erro: No Persistence provider for EntityManager named

R

Qual é a versão do seu Hibernate?
É necessário declarar um provider no arquivo persistence.xml, que pode ser este, caso sua versão seja 5.2.x ou superior

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

ou este para versões inferiores

<provider>org.hibernate.ejb.HibernatePersistence</provider>

A

Cara veja como esta meu Persistence.xml

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

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


	<!-- provedor/implementacao do JPA -->
	<provider>org.hibernate.ejb.HibernatePersistence</provider>
	
	<!-- entidade mapeada -->
	<class>br.com.empresa.control.Usuario</class>
	<class>br.com.empresa.model.Pessoa</class>

	<properties>
		<!-- dados da conexao -->
		<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/dbReinf" />
		<property name="javax.persistence.jdbc.user" value="postgres" />
		<property name="javax.persistence.jdbc.password" value="fecorp" />

		<!-- propriedades do hibernate -->
		<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
		<property name="hibernate.connection.shutdown" value="true" />
		<property name="hibernate.show_sql" value="false" />
		<property name="hibernate.format_sql" value="false" />
		
		<!-- atualiza o banco, gera as tabelas se for preciso -->
		 <property name="hibernate.hbm2ddl.auto" value="update" />
		

	</properties>
</persistence-unit>
E

Novamente leia o post SOLUÇÃO- Erro: No Persistence provider for EntityManager named

Lá o problema era o mesmo que o seu e foi resolvido.

No caso dele bastou adicionar a biblioteca jboss-transaction-api_1.1_spec-1.0.0.Final.jar que o problema foi sanado.

Ou também atualizar o hibernate com os jars mais novos.

R

Qual é a sua versão do Hibernate??

A

Hibernate 5.0

P

Esse erro pode ser de bibliotecas exclui as libs do maven e deixa ele gerar novamente.

A

Tudo bem , Fiz isto exclui as libs do maven e deixa ele gerar novamente e o mesmo erro

  • Atualizei as Libs do Hibernate e nada
  • instalei jboss-transaction-api_1.1_spec-1.0.0.Final.jar e nada
    Mesmo erro Estranho né
A

Mesmo erro

P

Estranho

E

Faça mais um teste.

Adicione o jar hibernate-entitymanager-4.x.x.jar no seu classpath

P

vc trocou o provider ?

para: <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

ou então manda o sua classe onde vc chama o seu PU para criar o entitymanager.

P

Talvez isso funcione…

A

Troquei o provider como falou e olha o erro agora

Exception in thread main java.lang.ExceptionInInitializerError

at br.com.fecorp.reinf.DAO.DaoGenerico.(DaoGenerico.java:10)

at br.com.fecorp.testclasse.InsertApplication.main(InsertApplication.java:13)

Caused by: javax.persistence.PersistenceException: [PersistenceUnit: PersistenciaPU] Unable to build Hibernate SessionFactory

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:967)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)

at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)

at br.com.fecorp.reinf.connection.ConnectionFactory.(ConnectionFactory.java:9)

 2 more

Caused by: org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration

at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:138)

at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:282)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889)

 7 more

Caused by: java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider

at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:33)

at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269)

at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)

at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:463)

at org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:84)

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.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:132)

 10 more

Caused by: java.lang.ClassNotFoundException: javax.validation.ParameterNameProvider

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

 20 more
A

Se coloco este : org.hibernate.jpa.HibernatePersistenceProvider

P

Volte com o antigo provider foi só um teste…

vc colocou a lib que o eduMatis mencionou.

Faça mais um teste.

Adicione o jar hibernate-entitymanager-5.x.x.jar

manda sua classe que cria o entitymanagerfactory

A

package br.com.fecorp.reinf.connection;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

public class ConnectionFactory {

private static EntityManagerFactory factory = Persistence.createEntityManagerFactory("PersistenciaPU");;

public static EntityManager getEntityManager(){
	return factory.createEntityManager();
}

}

E

Até ai tudo certo.

Adicione o jar como mencionei mais acima.

Se seu hibernate estiver na versão 5 use hibernate-entitymanager-5.x.x.jar.

P

Pelo que estou vendo está correto, o que vc pode tentar fazer é atualizar o seu hibernate para o 5.2 e verificar se todas libs estão baixadas

lembrando de colocar o provider : <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

P

manda seu pom ai.

A

instalei este hibernate-entitymanager-5.0.1.Final
Mesmo erro

A

<modelVersion>4.0.0</modelVersion>
<groupId>br.com.empresa</groupId>
<artifactId>projeto</artifactId>
<version>0.0.1-SNAPSHOT</version>

<dependencies>

	<!-- PrimeFaces (biblioteca de componentes) -->
	<dependency>
		<groupId>org.primefaces</groupId>
		<artifactId>primefaces</artifactId>
		<version>5.1</version>
		<scope>compile</scope>
	</dependency>


	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-core</artifactId>
		<version>5.0.1.Final</version>
	</dependency>

	<!-- Implementação de EntityManager da JPA -->
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-entitymanager</artifactId>
		<version>4.3.6.Final</version>
	</dependency>
	
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-validator</artifactId>
		<version>4.2.0.Final</version>
	</dependency>
	
	<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>3.2.0.Final</version>
    </dependency>
    
	<dependency>
		<groupId>org.hibernate.javax.persistence</groupId>
		<artifactId>hibernate-jpa-2.0-api</artifactId>
		<version>1.0.1.Final</version>
	</dependency>


	<!-- Framework Junit -->
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.11</version>
		<scope>test</scope>
	</dependency>

	<!-- Jar do Theme do Bootstrap -->
	<dependency>
		<groupId>org.primefaces.themes</groupId>
		<artifactId>bootstrap</artifactId>
		<version>1.0.10</version>

	</dependency>

	<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>2.4</version>
	</dependency>
	<dependency>
		<groupId>org.ajax4jsf</groupId>
		<artifactId>ajax4jsf</artifactId>
		<version>1.0.5</version>
	</dependency>

	<dependency>
		<groupId>org.postgresql</groupId>
		<artifactId>postgresql</artifactId>
		<version>9.4-1206-jdbc42</version>
	</dependency>

	<dependency>
		<groupId>org.wildfly</groupId>
		<artifactId>wildfly-feature-pack</artifactId>
		<version>9.0.0.Final</version>
		<type>pom</type>
		<scope>provided</scope>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.jboss.spec.javax.transaction/jboss-transaction-api_1.1_spec -->
	<dependency>
		<groupId>org.jboss.spec.javax.transaction</groupId>
		<artifactId>jboss-transaction-api_1.1_spec</artifactId>
		<version>1.0.1.Final</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.webjars/font-awesome -->
	<dependency>
		<groupId>org.webjars</groupId>
		<artifactId>font-awesome</artifactId>
		<version>4.7.0</version>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
	<dependency>
	    <groupId>commons-io</groupId>
	    <artifactId>commons-io</artifactId>
	    <version>2.5</version>
	</dependency>
	
	
			<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
	<dependency>
	    <groupId>org.javassist</groupId>
	    <artifactId>javassist</artifactId>
	    <version>3.22.0-CR2</version>
	</dependency>
					
				
				
			
		<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

<dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-core</artifactId>
     <version>4.0.1.Final</version>
</dependency>
			

	<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
	<dependency>
		<groupId>dom4j</groupId>
		<artifactId>dom4j</artifactId>
		<version>1.6.1</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
	<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>2.5</version>
	</dependency>


	<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
	<dependency>
		<groupId>org.javassist</groupId>
		<artifactId>javassist</artifactId>
		<version>3.22.0-CR2</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.jboss.spec.javax.transaction/jboss-transaction-api_1.1_spec -->
	<dependency>
		<groupId>org.jboss.spec.javax.transaction</groupId>
		<artifactId>jboss-transaction-api_1.1_spec</artifactId>
		<version>1.0.1.Final</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/log4j/log4j -->
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.17</version>
	</dependency>
	
	<!-- Novas Dependencias  -->
	
	<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>        

   <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>2.2</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.5</version>
    </dependency>

	
	</dependencies>

<build>
	<plugins>
		<plugin>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
			</configuration>
		</plugin>
	</plugins>
</build> 

<repositories>
	<repository>
		<id>prime-repo</id>
		<name>PrimeFaces Maven Repository</name>
		<url>http://repository.primefaces.org</url>
		<layout>default</layout>
	</repository>
</repositories>
P

quando vc atualiza a versão do hibernate todas as libs do pacote org.hibernate tem que estar atualizado.

faz assim muda a versão do seu hibernate para fazer um teste coloque uma versao mais atualizada tipo a 5.2 e testa

lembrando que se for migrar para 5.2 o provider e esse : <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

P

quando vc usar uma biblioteca crie no seu pom

<properties>
	<hibernate.version>5.1.5.Final</hibernate.version>
</properties>

e chama assim a versao

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>${hibernate.version}</version>
</dependency>

assim vc muda a versao so em um lugar e atualiza o pacote todo.

A

Atualizei para 5.2
e coloquei o provider que falou e ao executar erro
ate fiz uma classe teste simples para executar da uma olhada ve se é ela que esta com erro

package br.com.fecorp.testclasse;

import br.com.fecorp.reinf.DAO.DaoGenerico;
import br.com.fecorp.reinf.model.Pessoa;

public class InsertApplication {

public static void main(String[] args) {
	
	Pessoa pessoa = new Pessoa();
	
	
	DaoGenerico<Pessoa> daoPessoa = new DaoGenerico<Pessoa>();
			
	pessoa.setNome(" eu ");
	pessoa.setIdade(28);
	
	daoPessoa.saveOrUpdate(pessoa);
	
	System.out.println("Entidades salvas com sucesso!");
	
}

}

P

cara vc tem skipe?

P

ta certo… o que pode estar dando problemas são as versões do seu pom para o hibernate.

A

como soluciono isto

P

quando vc usar uma biblioteca crie no seu pom

<properties>
	<hibernate.version>5.1.5.Final</hibernate.version>
</properties>

e chama assim a versao

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>${hibernate.version}</version>
</dependency>

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-ehcache</artifactId>
	<version>${hibernate.version}</version>
</dependency>

	<dependency>
	  <groupId>org.hibernate</groupId>
	<artifactId>hibernate-entitymanager</artifactId>
	<version>${hibernate.version}</version>
</dependency>

assim vc muda a versao so em um lugar e atualiza o pacote todo.

uso assim no projeto

A

Fiz e o mesmo erro acredita

Não é possível … kkkk to ficando maluco

E

Na dúvida recria o projeto e configura novamente.

:grin:

P

cara podemos fazer assim vc me passa o projeto e eu tento sanar seu problema. se le nao for muito grande me manda por email e como configura ele. [email removido]

se não joga no drive e me de permissão de baixar

Criado 17 de outubro de 2017
Ultima resposta 17 de out. de 2017
Respostas 32
Participantes 4