Erro na minha classe. Alguem pode ajudar?

0 respostas
X
Quando compilo dá o seguinte erro:
javax.servlet.ServletException: /contas/cadastroConta.jsp(35,6) '#{cadastroContaBean.pessoas}' Error reading 'pessoas' on type com.algaworks.dwjsf.financeiro.visao.CadastroContaBean
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
Essa é minha classe CadastroContaBean:
package com.algaworks.dwjsf.financeiro.visao;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import com.algaworks.dwjsf.financeiro.dominio.Conta;
import com.algaworks.dwjsf.financeiro.dominio.Pessoa;
import com.algaworks.dwjsf.financeiro.dominio.TipoConta;
import com.algaworks.dwjsf.financeiro.negocio.ContaService;
import com.algaworks.dwjsf.financeiro.negocio.PessoaService;
import com.algaworks.dwjsf.financeiro.negocio.RegraNegocioException;

public class CadastroContaBean {
	private Conta contaEdicao;
	private List<SelectItem> tiposContas;
	private List<SelectItem> pessoas;

	public String inicializar() {
		this.contaEdicao = new Conta();
		this.tiposContas = null;
		this.pessoas = null;
		return "cadastroConta";
	}

	public void salvar(ActionEvent event) {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			new ContaService().salvar(this.contaEdicao);
			this.contaEdicao = new Conta();
			FacesMessage msg = new FacesMessage("Conta salva com sucesso!");
			msg.setSeverity(FacesMessage.SEVERITY_INFO);
			context.addMessage(null, msg);
		} catch (RegraNegocioException e) {
			context.addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR, e
							.getMessage(), e.getMessage()));
		} catch (Exception e) {
			e.printStackTrace();
			FacesMessage msg = new FacesMessage(
					"Erro inesperado ao salvar conta!");
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, msg);
		}
	}

	public List<SelectItem> getPessoas() {
		if (this.pessoas == null) {
			this.pessoas = new ArrayList<SelectItem>();
			List<Pessoa> pessoas = new PessoaService().listarTodas();
			this.pessoas.add(new SelectItem(null, "Selecione"));
			for (Pessoa pessoa : pessoas) {
				this.pessoas.add(new SelectItem(pessoa, pessoa.getNome()));
			}
		}
		return this.pessoas;
	}

	public List<SelectItem> getTiposLancamentos() {
		if (this.tiposContas == null) {
			this.tiposContas = new ArrayList<SelectItem>();
			for (TipoConta tipo : TipoConta.values()) {
				this.tiposContas.add(new SelectItem(tipo, tipo.toString()));
			}
		}
		return tiposContas;
	}

	public Conta getContaEdicao() {
		return contaEdicao;
	}

	public void setContaEdicao(Conta contaEdicao) {
		this.contaEdicao = contaEdicao;
	}
}

Ha! O erro dá ao entrar no método inicializar() e get getPessoas()...

Outras classes que talvez precisem:

Classe PessoaService:
package com.algaworks.dwjsf.financeiro.negocio;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.criterion.Order;

import com.algaworks.dwjsf.financeiro.dominio.Pessoa;
import com.algaworks.dwjsf.financeiro.util.HibernateUtil;

public class PessoaService {
	public Pessoa pesquisarPorId(Long id) {
		Session session = HibernateUtil.getSession();
		try {
			return (Pessoa) session.get(Pessoa.class, id);
		} finally {
			session.close();
		}
	}

	@SuppressWarnings("unchecked")
	public List<Pessoa> listarTodas() {
		Session session = HibernateUtil.getSession();
		try {
			return session.createCriteria(Pessoa.class)
					.addOrder(Order.asc("nome")).list();
		} finally {
			session.close();
		}
	}
}

Classe HirbanteUtil:

package com.algaworks.dwjsf.financeiro.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
	private static SessionFactory sessionFactory;
	static {
		try {
			sessionFactory = new AnnotationConfiguration().configure()
					.buildSessionFactory();
		} catch (Throwable ex) {
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static Session getSession() {
		return sessionFactory.openSession();
	}
}
Criado 1 de dezembro de 2011
Respostas 0
Participantes 1