Erro JSF 2.0 com JPA

4 respostas
dcorteztec

Blz amigos, estava estudando jsf 2.0 com jpa , estou fazendo um simples Crud, mas to tomando uma surra de NullPointerException
olha o erro.

SEVERE: java.lang.NullPointerException

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)

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

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

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

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

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

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

Caused by: java.lang.NullPointerException

at br.com.universidade.repositorio.CursoRepositorio.adciona(CursoRepositorio.java:23)

at br.com.universidade.mb.CursoBean.adciona(CursoBean.java:21)

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:262)

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

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

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

 23 more

09/12/2010 15:19:53 com.sun.faces.lifecycle.InvokeApplicationPhase execute

WARNING: #{cursoBean.adciona}: java.lang.NullPointerException

javax.faces.FacesException: #{cursoBean.adciona}: java.lang.NullPointerException

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

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

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

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

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

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

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

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

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

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

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

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

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

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

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)

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

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

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

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

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

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

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

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

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

 22 more

Caused by: java.lang.NullPointerException

at br.com.universidade.repositorio.CursoRepositorio.adciona(CursoRepositorio.java:23)

at br.com.universidade.mb.CursoBean.adciona(CursoBean.java:21)

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:262)

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

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

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

 23 more

09/12/2010 15:19:53 org.apache.catalina.core.StandardWrapperValve invoke

SEVERE: Servlet.service() for servlet [Faces Config] in context with path [/universidade] threw exception [java.lang.NullPointerException] with root cause

java.lang.NullPointerException

at br.com.universidade.repositorio.CursoRepositorio.adciona(CursoRepositorio.java:23)

at br.com.universidade.mb.CursoBean.adciona(CursoBean.java:21)

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:262)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)

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

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

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

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

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

os Codigos

package br.com.universidade.mb;

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

import br.com.universidade.entidades.Curso;
import br.com.universidade.repositorio.CursoRepositorio;

@ManagedBean
public class CursoBean {

	@ManagedProperty(value="#{entityManager}")
	private EntityManager entityManager;
	
	private Curso curso = new Curso();

	
	public void adciona(){
		CursoRepositorio cursoRepositorio = new CursoRepositorio(this.entityManager);
		cursoRepositorio.adciona(this.curso);
		this.curso = new Curso();
	
	
	}
	
	public EntityManager getEntityManager() {
		return entityManager;
	}

	public void setEntityManager(EntityManager entityManager) {
		this.entityManager = entityManager;
	}

	public Curso getCurso() {
		return curso;
	}

	public void setCurso(Curso curso) {
		this.curso = curso;
	}
	
	
	
	
}

Repositório

package br.com.universidade.repositorio;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.universidade.entidades.Curso;


public class CursoRepositorio {


	
	private EntityManager entityManager;
	
	public CursoRepositorio (EntityManager entityManager){
		this.entityManager = entityManager;
	}
	
	public void adciona(Curso curso){
		
		this.entityManager.persist(curso);
		this.entityManager.flush();
	}
	
	@SuppressWarnings("unchecked")
	public List<Curso> getCurso(){
		Query query = this.entityManager.createQuery("SELECT C FROM CURSO AS C");
		return query.getResultList();
	}


	
}

JPAFilter

package br.com.universidade.filter;

import java.io.IOException;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

@WebFilter(servletNames={"Faces Servlet"})
public class JPAFilter implements Filter{
    private EntityManagerFactory factory;
	
    @Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		    	
    	EntityManager entityManager = this.factory.createEntityManager();
    	request.setAttribute("entityManager", entityManager);
    	entityManager.getTransaction().begin();
    	
    	chain.doFilter(request, response);
    	try{
    		
    		entityManager.getTransaction().commit();
    	}catch(Exception e){
    		entityManager.getTransaction().rollback();
    	}finally{
    		entityManager.close();
    	}
	}
    
	@Override
	public void init(FilterConfig config) throws ServletException {
		this.factory = Persistence.createEntityManagerFactory("universidade");
		
	}

    
    @Override
	public void destroy() {
		this.factory.close();
		
	}
	
}

4 Respostas

T

at br.com.universidade.repositorio.CursoRepositorio.adciona(CursoRepositorio.java:23)

Entity manager está nulo

dcorteztec

Desculpe minha ignorância mas como pode posso resolver esse problema.

vinicius8891

dcorteztec,

Topico antigo, mas para evitar abrir um novo tópico com mesmo assunto.

Estou com o mesmo problema, alguém poderia me ajudar a solucionar este problema. Obrigado pessoal desde já.

R

Instanciando na mão ou injetando.

Criado 9 de dezembro de 2010
Ultima resposta 27 de mar. de 2012
Respostas 4
Participantes 4