erro ExceptionInInitializerError JSF com JPA
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)
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
Curtidas 0