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