Erro... retornado null

17 respostas
D

galera,
estou com o seguinte erro e não estou conseguindo resolver, alguém sabe o que pode ser?

ERRO:
… value="#{corretorAction.corretorPagina.pessoa.nomePessoa}": Target Unreachable: ‘corretorPagina’ returned null on 'br.com.beiramar.action.corretor.Correto

17 Respostas

Hebert_Coelho

Pq erro bizarro?

Ele ta falando que o corretorAction.corretorPagina está null. O.o

leonardobhbr

Favor mudar o titulo do topico, para um relativo a sua duvida

D
jakefrog:
Pq erro bizarro?

Ele ta falando que o corretorAction.corretorPagina está null. O.o

Pq não tem lógica ele está retornado null.
Olha só a action que eu criei:

import java.util.List;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.international.StatusMessages;

package br.com.beiramar.action.corretor;
import br.com.beiramar.entity.pessoa.corretor.CorretorPessoa;
import br.com.beiramar.manager.corretormanager.CorretorManager;

@Name("corretorAction")
@Scope(ScopeType.CONVERSATION)
public class CorretorAction {

	@In
	private StatusMessages statusMessages;

	@In
	private CorretorManager corretorManager;

	@In(required=false)
	@Out(required = false)
	private CorretorPessoa corretorPagina;


	public List<CorretorPessoa> listaCorretores() {
		return corretorManager.retornacorretores();
	}

	public String editarCorretor(CorretorPessoa c) {
		this.corretorPagina = c;
		return "EDITAR_CORRETOR";
	}
        //estou usando esse método
	public String salvar() {
		try {
			corretorManager.salvarCorretor(this.corretorPagina);
			statusMessages.add("Corretor salvo com sucesso.");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "VOLTAR";
	}

	public CorretorPessoa getCorretorPagina() {
		return corretorPagina;
	}

	public void setCorretorPagina(CorretorPessoa corretorPagina) {
		this.corretorPagina = corretorPagina;
	}
}

Os mapeamentos:

package br.com.beiramar.entity.pessoa.corretor;

import java.io.Serializable;
import java.sql.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import br.com.beiramar.entity.pessoa.Pessoa;
import br.com.beiramar.entity.pessoa.empMaster.EmpMaster;

@Entity
@Table(name = "Corretor", schema = "ev")
@NamedQueries({ 
	@NamedQuery(name = "corretor.Dados", query = "Select Object(result) from CorretorPessoa result") })

public class CorretorPessoa implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "idCorretor" , unique=true , nullable=false)
	private Integer idCorretor;

	@Column(name = "corretorCreci")
	private String corretorCreci;

	@Column(name = "vencimentoCreci")
	private Date vencimentoCreci;

	@Column(name = "obsCorretor")
	private String observacao;

	@OneToOne
	@JoinColumn(name = "EmpMaster_idEmpMaster")
	private EmpMaster empreendedorMaster;

	//um corretor pode ter um empreendedor Master e um empreendedor Master pode ter vários corretores
	@OneToMany(mappedBy = "corretorP")
	private List<EmpMaster> empMaster;

	//um corretor pode ter um título e um título pode ter vários corretores
	@ManyToOne
	@JoinColumn(name ="Titulo_idTitulo" )
	private Titulo titulo = new Titulo();
	
	//um corretor pode ser uma pessoa e uma pessoa pode ser um corretor
	@ManyToOne
	@JoinColumn(name="Pessoa_idPessoa")
	private Pessoa pessoa = new Pessoa();
		
	
	public EmpMaster getEmpreendedorMaster() {
		return empreendedorMaster;
	}

	public void setEmpreendedorMaster(EmpMaster empreendedorMaster) {
		this.empreendedorMaster = empreendedorMaster;
	}

	public List<EmpMaster> getEmpMaster() {
		return empMaster;
	}

	public void setEmpMaster(List<EmpMaster> empMaster) {
		this.empMaster = empMaster;
	}

	public Titulo getTitulo() {
		return titulo;
	}

	public void setTitulo(Titulo titulo) {
		this.titulo = titulo;
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public Integer getIdCorretor() {
		return idCorretor;
	}

	public void setIdCorretor(Integer idCorretor) {
		this.idCorretor = idCorretor;
	}

	public String getCorretorCreci() {
		return corretorCreci;
	}

	public void setCorretorCreci(String corretorCreci) {
		this.corretorCreci = corretorCreci;
	}

	public Date getVencimentoCreci() {
		return vencimentoCreci;
	}

	public void setVencimentoCreci(Date vencimentoCreci) {
		this.vencimentoCreci = vencimentoCreci;
	}

	public String getObservacao() {
		return observacao;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}
	

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((idCorretor == null) ? 0 : idCorretor.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		CorretorPessoa other = (CorretorPessoa) obj;
		if (idCorretor == null) {
			if (other.idCorretor != null)
				return false;
		} else if (!idCorretor.equals(other.idCorretor))
			return false;
		return true;
	}

}
D

continuação dos mapeadmentos:

package br.com.beiramar.entity.pessoa;

import java.io.Serializable;
import java.sql.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import br.com.beiramar.entity.pessoa.corretor.CorretorPessoa;

@Entity
@Table(name = "Pessoa", schema = "ev")
@NamedQueries({ @NamedQuery(name = "pessoa.Dados", query = "Select Object(result) from Pessoa result") })
public class Pessoa implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "idPessoa", unique = true, nullable = false)
	private Integer idPessoa;

	@Column(name = "nomePessoa")
	private String nomePessoa;

	@Column(name = "emailPessoa")
	private String emailPessoa;

	@Column(name = "dataNascimentoPessoa")
	private Date dataNascimentoPessoa;

	@Column(name = "filiacaoPaiPessoa")
	private String filiacaoPaiPessoa;

	@Column(name = "filiacaoMaePessoa")
	private String filiacaoMaePessoa;

	@Column(name = "celularPessoa")
	private String celularPessoa;

	@Column(name = "celular2Pessoa")
	private String celular2Pessoa;

	@Column(name = "cnhPessoa")
	private String cnhPessoa;

	@Column(name = "expedicaoPessoa")
	private Date expedicaoPessoa;

	@Column(name = "vencimentoCnhPessoa")
	private Date vencimentoCnhPessoa;

	@Column(name = "filhosPessoa")
	private int filhosPessoa;

	@Column(name = "sexoPessoa")
	private String sexoPessoa;

	@Column(name = "notebookPessoa")
	private boolean notebookPessoa;

	@Column(name = "carroPessoa")
	private boolean carroPessoa;

	@Column(name = "ultimoAcompanhamentoPessoa")
	private Date ultimoAcompanhamentoPessoa;

	@Column(name = "status_2Pessoa")
	private String status_2Pessoa;

	@Column(name = "escolaridadePessoa")
	private String escolaridadePessoa;

	@Column(name = "observacaoPessoa")
	private String observacaoPessoa;

	@Column(name = "estadoCivilPessoa")
	private String estadoCivilPessoa;

	@Column(name = "nacionalidadePessoa")
	private String nacionalidadePessoa;

	@Column(name = "cpfPessoa")
	private String cpfPessoa;

	@Column(name = "rgPessoa")
	private String rgPessoa;

	@Column(name = "Endereco_idEndereco")
	private Integer idEndereco;
	
	@OneToMany(mappedBy = "pessoa")
	private List&lt;CorretorPessoa&gt; corretores;
	
	public Integer getIdEndereco() {
		return idEndereco;
	}

	public void setIdEndereco(Integer idEndereco) {
		this.idEndereco = idEndereco;
	}

	public Integer getIdPessoa() {
		return idPessoa;
	}

	public void setIdPessoa(Integer idPessoa) {
		this.idPessoa = idPessoa;
	}

	public String getNomePessoa() {
		return nomePessoa;
	}

	public void setNomePessoa(String nomePessoa) {
		this.nomePessoa = nomePessoa;
	}

	public String getEmailPessoa() {
		return emailPessoa;
	}

	public void setEmailPessoa(String emailPessoa) {
		this.emailPessoa = emailPessoa;
	}

	public Date getDataNascimentoPessoa() {
		return dataNascimentoPessoa;
	}

	public void setDataNascimentoPessoa(Date dataNascimentoPessoa) {
		this.dataNascimentoPessoa = dataNascimentoPessoa;
	}

	public String getFiliacaoPaiPessoa() {
		return filiacaoPaiPessoa;
	}

	public void setFiliacaoPaiPessoa(String filiacaoPaiPessoa) {
		this.filiacaoPaiPessoa = filiacaoPaiPessoa;
	}

	public String getFiliacaoMaePessoa() {
		return filiacaoMaePessoa;
	}

	public void setFiliacaoMaePessoa(String filiacaoMaePessoa) {
		this.filiacaoMaePessoa = filiacaoMaePessoa;
	}

	public String getCelularPessoa() {
		return celularPessoa;
	}

	public void setCelularPessoa(String celularPessoa) {
		this.celularPessoa = celularPessoa;
	}

	public String getCelular2Pessoa() {
		return celular2Pessoa;
	}

	public void setCelular2Pessoa(String celular2Pessoa) {
		this.celular2Pessoa = celular2Pessoa;
	}

	public String getChnPessoa() {
		return cnhPessoa;
	}

	public void setChnPessoa(String chnPessoa) {
		this.cnhPessoa = chnPessoa;
	}

	public Date getExpedicaoPessoa() {
		return expedicaoPessoa;
	}

	public void setExpedicaoPessoa(Date expedicaoPessoa) {
		this.expedicaoPessoa = expedicaoPessoa;
	}

	public Date getVencimentoCnhPessoa() {
		return vencimentoCnhPessoa;
	}

	public void setVencimentoCnhPessoa(Date vencimentoCnhPessoa) {
		this.vencimentoCnhPessoa = vencimentoCnhPessoa;
	}

	public int getFilhosPessoa() {
		return filhosPessoa;
	}

	public void setFilhosPessoa(int filhosPessoa) {
		this.filhosPessoa = filhosPessoa;
	}

	public String getSexoPessoa() {
		return sexoPessoa;
	}

	public void setSexoPessoa(String sexoPessoa) {
		this.sexoPessoa = sexoPessoa;
	}

	public boolean isNotebookPessoa() {
		return notebookPessoa;
	}

	public void setNotebookPessoa(boolean notebookPessoa) {
		this.notebookPessoa = notebookPessoa;
	}

	public boolean isCarroPessoa() {
		return carroPessoa;
	}

	public void setCarroPessoa(boolean carroPessoa) {
		this.carroPessoa = carroPessoa;
	}

	public Date getUltimoAcompanhamentoPessoa() {
		return ultimoAcompanhamentoPessoa;
	}

	public void setUltimoAcompanhamentoPessoa(Date ultimoAcompanhamentoPessoa) {
		this.ultimoAcompanhamentoPessoa = ultimoAcompanhamentoPessoa;
	}

	public String getStatus_2Pessoa() {
		return status_2Pessoa;
	}

	public void setStatus_2Pessoa(String status_2Pessoa) {
		this.status_2Pessoa = status_2Pessoa;
	}

	public String getEscolaridadePessoa() {
		return escolaridadePessoa;
	}

	public void setEscolaridadePessoa(String escolaridadePessoa) {
		this.escolaridadePessoa = escolaridadePessoa;
	}

	public String getObservacaoPessoa() {
		return observacaoPessoa;
	}

	public void setObservacaoPessoa(String observacaoPessoa) {
		this.observacaoPessoa = observacaoPessoa;
	}

	public String getEstadoCivilPessoa() {
		return estadoCivilPessoa;
	}

	public void setEstadoCivilPessoa(String estadoCivilPessoa) {
		this.estadoCivilPessoa = estadoCivilPessoa;
	}

	public String getNacionalidadePessoa() {
		return nacionalidadePessoa;
	}

	public void setNacionalidadePessoa(String nacionalidadePessoa) {
		this.nacionalidadePessoa = nacionalidadePessoa;
	}

	public String getCnhPessoa() {
		return cnhPessoa;
	}

	public void setCnhPessoa(String cnhPessoa) {
		this.cnhPessoa = cnhPessoa;
	}

	public String getCpfPessoa() {
		return cpfPessoa;
	}

	public void setCpfPessoa(String cpfPessoa) {
		this.cpfPessoa = cpfPessoa;
	}

	public String getRgPessoa() {
		return rgPessoa;
	}

	public void setRgPessoa(String rgPessoa) {
		this.rgPessoa = rgPessoa;
	}
	
	public List&lt;CorretorPessoa&gt; getCorretores() {
		return corretores;
	}

	public void setCorretores(List&lt;CorretorPessoa&gt; corretores) {
		this.corretores = corretores;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + idPessoa;
		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 (idPessoa != other.idPessoa)
			return false;
		return true;
	}

}
Hebert_Coelho

david.jv:
jakefrog:
Pq erro bizarro?

Ele ta falando que o corretorAction.corretorPagina está null. O.o

Pq não tem lógica ele está retornado null.

Até onde eu vi, tem toda lógica em retornar null.

Você faz um get:

public List<CorretorPessoa> getCorretorPagina() { return corretorPagina; }

Esse cara é injetado? Se não for, em nenhum momento você faz corretorPagina = new CorretorPagina();

D

jakefrog:

Até onde eu vi, tem toda lógica em retornar null.

Você faz um get:

public List<CorretorPessoa> getCorretorPagina() { return corretorPagina; }

Esse cara é injetado? Se não for, em nenhum momento você faz corretorPagina = new CorretorPagina();

É injetado sim, aliás só pra constar esse get não é usado na hora do cadastro e sim na hora de pesquisar. E o pesquisar está tudo ok.

D

esqueci de colocar a manager:

@AutoCreate
@Name("corretorManager")
@SuppressWarnings("unchecked")
public class CorretorManager extends AbstractManager {
	
	public List&lt;CorretorPessoa&gt; retornacorretores(){
		List&lt;CorretorPessoa&gt; retorno = null;
		retorno = entityManager.createNamedQuery("corretor.Dados").getResultList();
		return retorno;
	}
	//Esse método é o que eu estou usando
	public void salvarCorretor(CorretorPessoa c){
		entityManager.merge(c);
		entityManager.flush();
	}
	
	public void excluirCorretor(CorretorPessoa c){
		entityManager.remove(c);
		entityManager.flush();
	}
	
}
Hebert_Coelho

Coloca um breakpoint lah na hora que ele é utilizando. Veja como está o objeto.

D
jakefrog:
Coloca um breakpoint lah na hora que ele é utilizando. Veja como está o objeto.

Já coloquei o breakpoint bem na entrada do método salvar só que ele não chega. Segue o xhtml:

<ui:define name="body">
	<div id="page-wrap" >
		<tailor:form id="formCadastra">
			<h1>
				Cadastro Novo<span>Corretor</span>
			</h1>
			<fieldset id="step_1">
				<p>Dados Pessoais:</p>
				<br class="Clear"/>
				<div class="name_wrap2">
					<tailor:inputText componentSize="4" required="false" label="Nome:" name="nome" value="#{corretorAction.corretorPagina.pessoa.nomePessoa}" />
					<br class="Clear" />
//TEM MAIS CAMPOS
                                        
//Ele não chega aki
 <h:commandButton value="Salvar"	action="#{corretorAction.salvar()}" />

			</fieldset>
		</tailor:form>
	</div>
	</ui:define>
</ui:composition>
W

tira os “parenteses do action” <h:commandButton value="Salvar" action="#{corretorAction.salvar}" />

D

Wellington, não faz sentido tirar os parenteses do action, afinal estou chamando um método.

Hebert_Coelho

Wellington, não faz sentido tirar os parenteses do action, afinal estou chamando um método.

Pq não? No meu sistema nenhum método é chamado com () no final.

Não sei se isso vai resolver seu problema, mas no livro Core JavaServer Faces 3rd não me lembro de ter visto exemplo com () ao final.

D

Wellington, não faz sentido tirar os parenteses do action, afinal estou chamando um método.

Pq não? No meu sistema nenhum método é chamado com () no final.

Não sei se isso vai resolver seu problema, mas no livro Core JavaServer Faces 3rd não me lembro de ter visto exemplo com () ao final.

Jakefrog,
Todos os outros métodos estão sendo chamando com () no final e estão funcionando blz. E para constar eu tentei sem o () no final e gerou o mesmo erro.

Hebert_Coelho

Sim, funciona com o ().

Mas não tem o pq afirmar que não tem lógica tirar o ().

Uma coisa que notei de estranha foi sua NamedQuery.

Select Object(result) from CorretorPessoa result

Pq não sem o Object()?

select cp from CorretorPessoa cp
D

[quote=jakefrog]Sim, funciona com o ().

Mas não tem o pq afirmar que não tem lógica tirar o ().

Uma coisa que notei de estranha foi sua NamedQuery.

Select Object(result) from CorretorPessoa result

Pq não sem o Object()?

select cp from CorretorPessoa cp

Pq eu tô utilizando ela pra fazer pesquisas.
Tipo, quando a pessoa necessita trazer todos os corretos eu uso ela.

D

Eu acredito que o erro esteja na classe CorretorAction ou nos mapeamentos. Mas eu já olhei, reolhei, rereolhei e num encontrei nada que possa estar afetando.

D

Achei o erro. Estava no mapeamento.

Criado 22 de novembro de 2011
Ultima resposta 23 de nov. de 2011
Respostas 17
Participantes 4