erro ExceptionInInitializerError JSF com JPA

05/06/2018

9

Boa tarde estou fazendo um cadastro com JSF , e quando tento salvar o usuário no banco acontece esse erro , porem ja adicionei todos os jars na pasta lib tomcat , e ja foi verificado que não existe nenhum jar igual ou com versão diferente para não dar conflito. o código esta abaixo logo apos o erro

HTTP Status 500 - java.lang.NoClassDefFoundError: Could not initialize class br.com.jpautil.JPAUtil.

type Exception report

message java.lang.NoClassDefFoundError: Could not initialize class br.com.jpautil.JPAUtil

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class br.com.jpautil.JPAUtil
javax.faces.webapp.FacesServlet.service(FacesServlet.java:671)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: Could not initialize class br.com.jpautil.JPAUtil
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931)
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

package br.com.jpautil;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;


/*
 * classe de persistência 
 * 
 */

public class JPAUtil {
	
	private static EntityManagerFactory factory = null;
	
	//  Método para criar a Persistência de Dados 
	static {
		if(factory == null) {
			factory = Persistence.createEntityManagerFactory("projetoJSF");
		}
	}
	
	// get utilizado para persistencia para comunicação com banco de dados
	public static EntityManager geEntityManager() {
		return factory.createEntityManager();
	}

}


package br.com.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import br.com.jpautil.JPAUtil;

public class DaoGeneric<O> {
	
	
	public void salvar(O objeto) {
		
		EntityManager entityManager = JPAUtil.geEntityManager();
		EntityTransaction entityTransaction = entityManager.getTransaction();
		entityTransaction.begin();
		
		entityManager.persist(objeto);
		
		entityTransaction.commit();
		entityManager.close();
		
	}
	
}


package br.com.bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import br.com.dao.DaoGeneric;
import br.com.entidades.Pessoa;

@ViewScoped
@ManagedBean(name = "pessoaBean")
public class PessoaBean {

	private Pessoa pessoa = new Pessoa();
	private DaoGeneric<Pessoa> daoGeneric = new DaoGeneric<Pessoa>();
	
	public String salvar() {
		daoGeneric.salvar(pessoa);
		return "";
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public DaoGeneric<Pessoa> getDaoGeneric() {
		return daoGeneric;
	}

	public void setDaoGeneric(DaoGeneric<Pessoa> daoGeneric) {
		this.daoGeneric = daoGeneric;
	}
}


package br.com.entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
public class Pessoa implements Serializable{
	
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private long id;
	
	private String nome;
	private String sobrenome;
	private int idade;
	
	@Temporal(TemporalType.DATE)
	private Date dataNascimento;
	
	public Pessoa() {
		
	}

	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 getSobrenome() {
		return sobrenome;
	}

	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}
	
	public int getIdade() {
		return idade;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (int) (id ^ (id >>> 32));
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Pessoa other = (Pessoa) obj;
		if (id != other.id)
			return false;
		return true;
	}
	
}


<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:h="http://java.sun.com/jsf/html">
	 <h:head>
	 	<title>Cadastro</title>
	 </h:head>
	 <h:body>
	 	<h:form id="formCadastro">
	 	
	 		<h:outputLabel>ID</h:outputLabel><br/><br/>
	 		<h:outputText value="#{pessoaBean.pessoa.id}" id="campoID"/><br/><br/>
	 		
	 		<h:outputLabel>Nome</h:outputLabel><br/><br/>
	 		<h:inputText value="#{pessoaBean.pessoa.nome}" id="campoNome"/><br/><br/>
	 		
	 		<h:outputLabel>Sobrenome</h:outputLabel><br/><br/>
	 		<h:inputText value="#{pessoaBean.pessoa.sobrenome}" id="campoSobrenome"/><br/><br/>
	 		
	 		<h:outputLabel>Idade</h:outputLabel><br/><br/>
	 		<h:inputText value="#{pessoaBean.pessoa.idade}" id="campoIdade"/><br/><br/>
	 		
	 		<h:commandButton value="Salvar" action="#{pessoaBean.salvar}" id="btnSalvar" immediate="true"/>
	 		
	 	</h:form>
	 </h:body>
</html>
Neto

Neto

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar