Binding não funciona!

9 respostas
Luciano_Khrisley

preciso de ajuda!!!
Estou desenvolvendo um projeto WEB usando NetBeans, servidor TomCat, API JPA com Hibernate, estou tendo o seguinte problema ao rodar a aplicação:
o objetivo é gravar um conta no banco de dados “MySql”.

HTTP Status 500 -

type Exception report

message

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

exception

javax.servlet.ServletException: java.lang.ExceptionInInitializerError
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)

root cause

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError

javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)

com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

javax.faces.component.UICommand.broadcast(UICommand.java:315)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11

javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

root cause

java.lang.ExceptionInInitializerError

org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

main.java.br.com.caelum.financas.infra.JPAUtil.(JPAUtil.java:12)

main.java.br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:21)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

org.apache.el.parser.AstValue.invoke(AstValue.java:191)

org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)

com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:9

javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:8

com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

javax.faces.component.UICommand.broadcast(UICommand.java:315)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11

javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

root cause

java.lang.ClassCastException: org.hibernate.annotations.common.reflection.java.JavaReflectionManager cannot be cast to org.hibernate.annotations.common.reflection.MetadataProviderInjector

org.hibernate.cfg.AnnotationConfiguration.reset(AnnotationConfiguration.java:303)

org.hibernate.cfg.Configuration.(Configuration.java:216)

org.hibernate.cfg.Configuration.(Configuration.java:220)

org.hibernate.cfg.AnnotationConfiguration.(AnnotationConfiguration.java:164)

org.hibernate.ejb.Ejb3Configuration.(Ejb3Configuration.java:107)

org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

main.java.br.com.caelum.financas.infra.JPAUtil.(JPAUtil.java:12)

main.java.br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:21)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

org.apache.el.parser.AstValue.invoke(AstValue.java:191)

org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)

com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:9

javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:8

com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

javax.faces.component.UICommand.broadcast(UICommand.java:315)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:11

javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
Apache Tomcat/6.0.26

isso acontece assim que clico no commandButton Gravar do meu XHTML, que faz o Binding com o meu ManagedBean, que também vou deixar aqui para ser observado:

public void grava() {

EntityManager em = new JPAUtil().getEntityManager();

em.getTransaction().begin();

ContaDAO dao = new ContaDAO(em);

dao.adiciona(conta);

this.contas = dao.lista();

em.getTransaction().commit();
em.close();

limpaFormularioDoJSF();
}

de acordo com configurações usadas em outros projetos, minha JPAUtil esta correta e de arcodo com minha unidade de persistencia.
por favor, me ajudem!!!
grande abraço.

9 Respostas

davidbuzatto

Oi Luciano, primeiramente recomendo essa leitura aqui: http://www.guj.com.br/posts/list/50115.java
Por favor, dê uma olhada ok?

Quanto ao seu problema, acho que o stacktrace da excessão esteja incompleto.
Parece ser um problema na persistencia da sua conta, não um problema no binding.
Teria como vc pegar o stacktrace completo no log do tomcat? Ou então tratar a excessão onde você fazer a persistência e mandar dar um print no stacktrace?

[]´s

FernandoCartaxo

Como está o mapeamento da sua entidade?

Luciano_Khrisley

Seria esse o mapeamento Fernando?

me desculpe mas sou novo no assunto.

[b]import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

public class JPAUtil {

private static EntityManagerFactory entityManagerFactory;

static {
	entityManagerFactory = Persistence.createEntityManagerFactory("nome da unidade de persistencia");
}

public EntityManager getEntityManager() {
	return entityManagerFactory.createEntityManager();
}

}[/b]

grande abraço.

Luciano_Khrisley

David o StackTrace do tomcat segue:

28/09/2010 14:21:18 org.apache.catalina.core.AprLifecycleListener init

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:/Program Files/Java/jre6/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\Program Files\TortoiseSVN\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin

28/09/2010 14:21:18 org.apache.tomcat.util.digester.SetPropertiesRule begin

AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property source to org.eclipse.jst.jee.server:projeto-fj25-web did not find a matching property.

28/09/2010 14:21:18 org.apache.coyote.http11.Http11Protocol init

INFO: Initializing Coyote HTTP/1.1 on http-8080

28/09/2010 14:21:18 org.apache.catalina.startup.Catalina load

INFO: Initialization processed in 511 ms

28/09/2010 14:21:18 org.apache.catalina.core.StandardService start

INFO: Starting service Catalina

28/09/2010 14:21:18 org.apache.catalina.core.StandardEngine start

INFO: Starting Servlet Engine: Apache Tomcat/6.0.26

28/09/2010 14:21:19 com.sun.faces.config.ConfigureListener contextInitialized

INFO: Inicializando Mojarra 2.0.2 (FCS b10) para o contexto /projeto-fj25-web

28/09/2010 14:21:22 org.apache.coyote.http11.Http11Protocol start

INFO: Starting Coyote HTTP/1.1 on http-8080

28/09/2010 14:21:22 org.apache.jk.common.ChannelSocket init

INFO: JK: ajp13 listening on /0.0.0.0:8009

28/09/2010 14:21:22 org.apache.jk.server.JkMain start

INFO: Jk running ID=0 time=0/30  config=null

28/09/2010 14:21:22 org.apache.catalina.startup.Catalina start

INFO: Server startup in 3172 ms

log4j:WARN No appenders could be found for logger (org.hibernate.validator.util.Version).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See <a href="http://logging.apache.org/log4j/1.2/faq.html#noconfig">http://logging.apache.org/log4j/1.2/faq.html#noconfig</a> for more info.

28/09/2010 14:24:13 com.sun.faces.application.ActionListenerImpl processAction

GRAVE: java.lang.ExceptionInInitializerError

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.ExceptionInInitializerError

at main.java.br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:22)

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.apache.el.parser.AstValue.invoke(AstValue.java:191)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

 20 more

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

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

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

at main.java.br.com.caelum.financas.infra.JPAUtil.(JPAUtil.java:12)

 29 more

28/09/2010 14:24:13 com.sun.faces.lifecycle.InvokeApplicationPhase execute

AVISO: #{contasBean.grava}: java.lang.ExceptionInInitializerError

javax.faces.FacesException: #{contasBean.grava}: java.lang.ExceptionInInitializerError

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Unknown Source)

Caused by: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

 19 more

Caused by: java.lang.ExceptionInInitializerError

at main.java.br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:22)

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.apache.el.parser.AstValue.invoke(AstValue.java:191)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

 20 more

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

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

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

at main.java.br.com.caelum.financas.infra.JPAUtil.(JPAUtil.java:12)

 29 more

28/09/2010 14:24:13 org.apache.catalina.core.StandardWrapperValve invoke

GRAVE: Servlet.service() for servlet Faces Servlet threw exception

javax.persistence.PersistenceException: No Persistence provider for EntityManager named controlefinancas

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

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

at main.java.br.com.caelum.financas.infra.JPAUtil.(JPAUtil.java:12)

at main.java.br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:22)

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.apache.el.parser.AstValue.invoke(AstValue.java:191)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Unknown Source)

espero q esteja mais facil de entender…

preciso muito da ajuda…

grande abraço.

davidbuzatto

Você leu o tópico que passei? Se tivesse lido, estaria mais fácil de entender sim.

Seu problema é que não está sendo encontrada a unidade de persistência.
No Persistence provider for EntityManager named controlefinancas

Espero que isso aquientityManagerFactory = Persistence.createEntityManagerFactory("nome da unidade de persistencia"); Você só tenha postado para mostrar como está fazendo, pq vc tem que informar o nome da unidade de persistência na factory.

Verifique se a unidade que você está informando (controlefinancas) está definida no persistence.xml

[]´s

Luciano_Khrisley

sim… só coloquei como exemplo… o nome esta controlefinancas.

estou aprendendo a usar o fórum, desculpe…

continuo com o problema…

abraços

T

Desculpe desenterrar esse tópico, mas é que estou com o mesmo problema do nosso colega acima, porém não sei se ele resolveu o problema, enfim, o que tudo indica é que o problema seja mesmo esse com a unidade de persistência, porém eu conferi diversas vezes e esta tudo correto, gostaria que alguém me desse uma luz.

Vou postar meus códigos.

persistence.xml
&lt;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"&gt;

	&lt;persistence-unit name="controlefinancas"&gt;
		&lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt;
		&lt;class&gt;br.com.caelum.financas.modelo.Conta&lt;/class&gt;
		&lt;class&gt;br.com.caelum.financas.modelo.Movimentacao&lt;/class&gt;
		
		&lt;properties&gt;
			&lt;property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/&gt;
			&lt;property name="hibernate.hbm2ddl.auto" value="update"/&gt;
			&lt;property name="hibernate.show_sql" value="true"/&gt;
			&lt;property name="hibernate.format_sql" value="true"/&gt;
			
			&lt;property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/&gt;
			&lt;property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/fj25"/&gt;
			&lt;property name="javax.persistence.jdbc.user" value="root"/&gt;
			&lt;property name="javax.persistence.jdbc.password" value=""/&gt;
		&lt;/properties&gt;
	&lt;/persistence-unit&gt;

&lt;/persistence&gt;
JPAUtil.java
package br.com.caelum.financas.infra;

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

public class JPAUtil {

	private static EntityManagerFactory entityManagerFactory;
	
	static {
		entityManagerFactory = Persistence.createEntityManagerFactory("controlefinancas");
	}
	
	public EntityManager getEntityManager() {
		return entityManagerFactory.createEntityManager();
	}
}
ContasBean.java
package br.com.caelum.financas.mb;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.persistence.EntityManager;

import br.com.caelum.financas.dao.ContaDAO;
import br.com.caelum.financas.infra.JPAUtil;
import br.com.caelum.financas.modelo.Conta;


@ViewScoped
@ManagedBean
public class ContasBean {
	private Conta conta = new Conta();
	private List&lt;Conta&gt; contas;	
	
	public void grava() {
		EntityManager em = new JPAUtil().getEntityManager();
		
		ContaDAO dao = new ContaDAO(em);
		
		em.getTransaction().begin();
		
		dao.adiciona(conta);
		this.contas = dao.lista();
		
		em.getTransaction().commit();
		em.close();
		
        System.out.println("Gravando a conta");
        limpaFormularioDoJSF();
	}
	
	public void remove() {
        System.out.println("Removendo a conta");        	
	}

	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}
	
	public List&lt;Conta&gt; getContas() {
        System.out.println("Listando as contas");
		return contas;
	}
	
	/**
	 * Esse método apenas limpa o formulário da forma com que o JSF espera.
	 * Invoque-o no momento em que precisar do formulário vazio.
	 */
	private void limpaFormularioDoJSF() {
        this.conta = new Conta();
	}	
}
Já debuggei diversas vezes e essa linha é a responsavel pelo problema.
EntityManager em = new JPAUtil().getEntityManager();
T

Que estranho, fiz uma classe para testar o hibernate e essas classes que eu suspeitava estarem causando problemas, no entando o teste passou.

Como resultado, agora não sei mais o que pode estar dando errado, pois o persistence.xml e a JPAUtil.java estão bem configurados e a linha EntityManager em = new JPAUtil().getEntityManager(); esta funcionando numa boa.

Minha stack trace:

HTTP Status 500 - java.lang.ExceptionInInitializerError

type Exception report

message java.lang.ExceptionInInitializerError

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

exception

javax.servlet.ServletException: java.lang.ExceptionInInitializerError
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
root cause

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError

javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)

com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

javax.faces.component.UICommand.broadcast(UICommand.java:315)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

root cause
java.lang.ExceptionInInitializerError

br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:28)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:616)

org.apache.el.parser.AstValue.invoke(AstValue.java:278)

org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)

com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)

javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

javax.faces.component.UICommand.broadcast(UICommand.java:315)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

root cause
javax.persistence.PersistenceException: Unable to configure EntityManagerFactory

org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:371)

org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)

br.com.caelum.financas.infra.JPAUtil.<clinit>(JPAUtil.java:12)

br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:28)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:616)

org.apache.el.parser.AstValue.invoke(AstValue.java:278)

org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)

com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)

javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

javax.faces.component.UICommand.broadcast(UICommand.java:315)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

root cause
java.io.FileNotFoundException: /home/wesley/workspace/java/fj25/projeto-fj25-web/projeto-fj25-web/WebContent/WEB-INF/classes/META-INF/persistence.xml (No such file or directory)

java.io.FileInputStream.open(Native Method)

java.io.FileInputStream.<init>(FileInputStream.java:137)

java.io.FileInputStream.<init>(FileInputStream.java:96)

sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:87)

sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:178)

org.hibernate.ejb.packaging.PersistenceXmlLoader.loadURL(PersistenceXmlLoader.java:81)

org.hibernate.ejb.packaging.PersistenceXmlLoader.deploy(PersistenceXmlLoader.java:168)

org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:310)

org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)

br.com.caelum.financas.infra.JPAUtil.<clinit>(JPAUtil.java:12)

br.com.caelum.financas.mb.ContasBean.grava(ContasBean.java:28)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:616)

org.apache.el.parser.AstValue.invoke(AstValue.java:278)

org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)

com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)

javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

javax.faces.component.UICommand.broadcast(UICommand.java:315)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.32 logs.

Apache Tomcat/7.0.32

Se alguém puder me ajudar, já usei todos meus conhecimentos, preciso de ajuda avançada.

Abraços.

G

Desculpa ressuscitar o tópico, mas estava com esse mesmo problema e era apenas o arquivo persistence.xml que não estava dentro da pasta META-INF.

Criado 28 de setembro de 2010
Ultima resposta 29 de mai. de 2014
Respostas 9
Participantes 5