MB não invoca método

Estou com um problema e não faço ideia porque acontece…
Tenho um cadastro de clientes. Nesse cadastro de clientes utilizo o MB ClienteController.
Nesse mesmo cadastro, utilizo outro MB para listar os países, outro MB para listar os estados e municípios, ambos num combobox.
Também tenho outro MB para listar os tipos de documentos em um combobox.
Resumindo: estou utilizando no cadastro de clientes mais 3 managed beans.

Se eu cadastrar algum cliente sem selecionar país, estado, município e tipo de documento (não mecher nos outros MB), o método de inserção executa normalmente.
Porém se eu utilizar os outros managed benas, o método de inserção do MB ClienteController não executa de jeito nenhum. Nem chega a entrar no método…

Veja como está minha tela de cadastro:

		<p:dialog header="Cliente" widgetVar="dialogCadCliente" resizable="false" modal="false" showEffect="slide" width="680" >	            
		     <h:form id="formCadCliente">
  		     
		         <h:panelGrid id="panelGridCadCliente" columns="4" style="margin-bottom:10px">	 
		             <h:outputLabel for="codigo" value="Código:" />
		             <h:inputText id="codigo" value="#{clienteController.cliente.codigo}" disabled="true"/>
		             <h:outputLabel for="codigos" value=""  />
		             <h:outputLabel for="codigos" value=""  />		             	 
		             <h:outputLabel for="nome" value="Nome:" />
		             <h:inputText id="nome" value="#{clienteController.cliente.nome}"/>	 	                    	                    
					 <h:outputLabel for="dataNascimento" value="Nascimento:" />
					 <p:calendar value="#{clienteController.cliente.dataNascimento}" id="dataNascimento" showOn="button" width="20" />
		             <h:outputLabel for="cpf" value="CPF:" />
		             <p:inputMask id="cpf" mask="999.999.999-99" value="#{clienteController.cliente.cpf}" />	 
					 <h:outputLabel for="estadoCivil" value="Estado Civil:"/>
		             <p:selectOneMenu id="estadoCivil" value="#{clienteController.cliente.estadoCivil}">
		                 <f:selectItem itemLabel="Selecione..." itemValue="" />
		                 <f:selectItem itemLabel="Solteiro(a)" itemValue="Solteiro(a)" />
		                 <f:selectItem itemLabel="Casado(a)" itemValue="Casado(a)" />
		                 <f:selectItem itemLabel="Viúvo(a)" itemValue="Viúvo(a)" />
		                 <f:selectItem itemLabel="Divorciado(a)" itemValue="Divorciado(a)" />
		             </p:selectOneMenu>
					 <h:outputLabel for="tipoLogradouro" value="Tipo Logradouro:"/>
		             <p:selectOneMenu id="tipoLogradouro" value="#{clienteController.cliente.tipoLogradouro}">
		                 <f:selectItem itemLabel="Selecione..." itemValue="" />
		                 <f:selectItem itemLabel="Aeroporto" itemValue="Aer" />
		                 <f:selectItem itemLabel="Alameda" itemValue="Al" />
		                 <f:selectItem itemLabel="Apartamento" itemValue="Ap" />
		                 <f:selectItem itemLabel="Avenida" itemValue="Av" />
		                 <f:selectItem itemLabel="Beco" itemValue="Bc" />
		                 <f:selectItem itemLabel="Bloco" itemValue="Bl" />
		                 <f:selectItem itemLabel="Caminho" itemValue="Cam" />
		                 <f:selectItem itemLabel="Escadinha" itemValue="Escd" />
		                 <f:selectItem itemLabel="Estação" itemValue="Est" />
		                 <f:selectItem itemLabel="Estrada" itemValue="Etr" />
		                 <f:selectItem itemLabel="Fazenda" itemValue="Faz" />
		                 <f:selectItem itemLabel="Fortaleza" itemValue="Fort" />
		                 <f:selectItem itemLabel="Galeria" itemValue="Gl" />
		                 <f:selectItem itemLabel="Ladeira" itemValue="Ld" />
		                 <f:selectItem itemLabel="Largo" itemValue="Lgo" />
		                 <f:selectItem itemLabel="Praça" itemValue="Pça" />
		                 <f:selectItem itemLabel="Parque" itemValue="Prq" />
		                 <f:selectItem itemLabel="Praia" itemValue="Pr" />
		                 <f:selectItem itemLabel="Quadra" itemValue="Qd" />
		                 <f:selectItem itemLabel="Quilômetro" itemValue="Km" />
		                 <f:selectItem itemLabel="Quinta" itemValue="Qta" />
		                 <f:selectItem itemLabel="Rodovia" itemValue="Rod" />
		                 <f:selectItem itemLabel="Rua" itemValue="R" />
		                 <f:selectItem itemLabel="Super Quadra" itemValue="Sqd" />
		                 <f:selectItem itemLabel="Travessa" itemValue="Trv" />
		                 <f:selectItem itemLabel="Viaduto" itemValue="Vd" />
		                 <f:selectItem itemLabel="Vila" itemValue="Vl" />
		             </p:selectOneMenu>		             
		             <h:outputLabel for="logradouro" value="Logradouro:" />
		             <h:inputText id="logradouro" value="#{clienteController.cliente.logradouro}"/>	 
		             <h:outputLabel for="numero" value="Número:" />
		             <h:inputText id="numero" value="#{clienteController.cliente.numero}"/>
		             <h:outputLabel for="complemento" value="Complemento:" />
		             <h:inputText id="complemento" value="#{clienteController.cliente.complemento}"/>		             	 
		             <h:outputLabel for="bairro" value="Bairro:" />
		             <h:inputText id="bairro" value="#{clienteController.cliente.bairro}"/>	 
		             <h:outputLabel for="cep" value="CEP:" />
		             <h:inputText id="cep" value="#{clienteController.cliente.cep}"/>

					 <h:outputLabel for="pais" value="País:" />
					 <p:selectOneMenu id="pais" value="#{paisController.pais}" >
						<f:selectItem itemLabel="Selecione..." itemValue="" />
						<f:selectItems value="#{paisController.paises}" var="p" itemLabel="#{p.nome}" itemValue="#{p}"/>						
						<p:ajax event="change" listener="#{paisController.actionCarregaUfs}" update="uf" />
					 </p:selectOneMenu>
					 <h:outputLabel for="uf" value="UF:" />
					 <p:selectOneMenu id ="uf" value ="#{unidadeFederacaoController.uf}" >
						<f:selectItem itemLabel="Selecione..." itemValue="" />
						<f:selectItems value="#{paisController.ufs}" var="uf" itemLabel="#{uf.nome}" itemValue="#{uf}" /> 
						<p:ajax event="change" listener="#{unidadeFederacaoController.actionCarregaMunicipios}" update="municipio" />												
					 </p:selectOneMenu>
					 <h:outputLabel for="municipio" value="Município:" />
					 <p:selectOneMenu id="municipio" value="#{clienteController.cliente.municipio}" >
						<f:selectItem itemLabel="Selecione..." itemValue="" />
						<f:selectItems value="#{unidadeFederacaoController.municipios}" var="municipio" itemLabel="#{municipio.nome}" itemValue="#{municipio}" /> 												
					 </p:selectOneMenu>


		             <h:outputLabel for="pai" value="Nome do Pai:" />
		             <h:inputText id="pai" value="#{clienteController.cliente.pai}"/>					 
		             <h:outputLabel for="mae" value="Nome da Mãe:" />
		             <h:inputText id="mae" value="#{clienteController.cliente.mae}"/>
		             <h:outputLabel for="telefone" value="Telefone:" />
		             <p:inputMask id="telefone" mask="(99)9999-9999" value="#{clienteController.cliente.telefone}" />		             
		             <h:outputLabel for="email" value="E-mail:" />
		             <h:inputText id="email" value="#{clienteController.cliente.email}"/>
		             <h:outputLabel for="profissao" value="Profissão:" />
		             <h:inputText id="profissao" value="#{clienteController.cliente.profissao}"/>
		             
					 <h:outputLabel for="tipoDocumento" value="Tipo do Documento:" />
					 <p:selectOneMenu id="tipoDocumento" value="#{clienteController.cliente.tipoDocumento}" >
						<f:selectItem itemLabel="Selecione..." itemValue="" />
						<f:selectItems value="#{tipoDocumentoController.tiposDocumentos}" var="tipoDocumento" itemLabel="#{tipoDocumento.descricao}" itemValue="#{tipoDocumento}" /> 												
					 </p:selectOneMenu>
					 
		             <h:outputLabel for="numDoc" value="Número Documento:" />
		             <h:inputText id="numDoc" value="#{clienteController.cliente.numeroDocumento}"/>
					 <h:outputLabel for="dataExpedicao" value="Data de Expedição:" />
					 <p:calendar value="#{clienteController.cliente.dataExpedicao}" id="dataExpedicao" showOn="button" width="20" />		             
		             <h:outputLabel for="orgExp" value="Órgão Expedidor:" />
		             <h:inputText id="orgExp" value="#{clienteController.cliente.orgaoExpedidor}"/>
							             		
		
 					 <p:commandButton icon="ui-icon-disk" id="commandButtonInserir" update=":formConCliente:tabela" oncomplete="dialogCadCliente.hide();" actionListener="#{clienteController.adicionarCliente}" value="Inserir" rendered="#{clienteController.isInsercao}"/> 					 
					 <p:commandButton icon="ui-icon-disk" id="commandButtonAlterar" update=":formConCliente:tabela" oncomplete="dialogCadCliente.hide();" actionListener="#{clienteController.alterarCliente}" value="Alterar" rendered="#{clienteController.isAlteracao}"/>					 	 					
		         </h:panelGrid>
		     </h:form>
		</p:dialog>

Percebam que estou utilizando outros MB’s junto com o MB principal que seria o ClienteController.
Se eu tenho um MB que depende de outros MB, isso deve ser feito de outra forma? Como posso solucionar esse problema?

Manda o log do servidor.
Zera o log. Faz a operação…e ve se o log gerou algum erro.
Posta o log aki…

Colega verifica se esta dando algum erro antes da fase 5 do jsf, verifica se esta dando algum erro de validação pois se de algum erro antes da fase 5 seu método não sera invocado pois o jsf vai pular direto para a fase 6.

Galera, no console não tá aparecendo nenhum erro…
Só acontece esse erro de não invocar o método de adicionar se eu selecionar algum país, estado e município, ou selecionando o tipo de documento. Essas informações vêm de outro managed bean.
Se eu adicionar o cliente sem informar esses campos ele invoca o método.
Repito: no console não aparece erro nenhum… Preciso muito resolver isso =/

Cara muito estranho no log do servidor não aparecer erro. Qual servidor você usa?
Posta o código do server side aê…

Putz kra…estou começando no mundo java…rs
Talvez eu não seja o cara mais indicado pra te ajudar…mas eu vou tentar…rs

Valew

Managed Bean da classe Cliente

package control;

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

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import dao.ClienteDao;
import dao.ClienteDaoImp;
import dao.TipoDocumentoDao;
import dao.TipoDocumentoDaoImp;

import model.Cliente;

@ManagedBean
@SessionScoped
public class ClienteController implements Serializable {

	private Cliente cliente = new Cliente();
	private DataModel listaClientes;
	private List<Cliente> filteredClientes;
	private Boolean isInsercao;
	private Boolean isAlteracao;

	public List<Cliente> getFilteredClientes() {
		return filteredClientes;
	}

	public void setFilteredClientes(List<Cliente> filteredClientes) {
		this.filteredClientes = filteredClientes;
	}

	public DataModel getListarClientes() {
		List<Cliente> lista = new ClienteDaoImp().list();
		listaClientes = new ListDataModel(lista);
		return listaClientes;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public String prepararAdicionarCliente() {
		System.out.println("Peparando inserção Cliente...");
		cliente = new Cliente();
		isInsercao = true;
		isAlteracao = false;				
		return "gerenciarCliente";
	}

	public String prepararAlterarCliente() {
		cliente = (Cliente) (listaClientes.getRowData());
		System.out.println("Cliente a ser alterado: " + cliente.getNome());
		isInsercao = false;
		isAlteracao = true;
		return "gerenciarCliente";
	}

	public String excluirCliente() {
		Cliente clienteTemp = (Cliente) (listaClientes.getRowData());
		ClienteDao dao = new ClienteDaoImp();
		dao.remove(clienteTemp);
		return "index";
	}
	
	public String actExcluirCliente() {
		ClienteDao dao = new ClienteDaoImp();
		dao.remove(cliente);
		return "index";
	}	

	public String adicionarCliente() {
		System.out.println("Adicionando Cliente...");
		ClienteDao dao = new ClienteDaoImp();
		dao.save(cliente);
		return "index";
	}

	public String alterarCliente() {
		ClienteDao dao = new ClienteDaoImp();
		dao.update(cliente);
		return "index";
	}

	public Boolean getIsInsercao() {
		return isInsercao;
	}

	public void setIsInsercao(Boolean insercao) {
		this.isInsercao = insercao;
	}

	public Boolean getIsAlteracao() {
		return isAlteracao;
	}

	public void setIsAlteracao(Boolean alteracao) {
		this.isAlteracao = alteracao;
	}

}

Managed Bean da classe Pais

package control;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import model.Pais;
import model.UnidadeFederacao;
import dao.PaisDao;
import dao.PaisDaoImp;

@ManagedBean
@ViewScoped
public class PaisController implements Serializable {
	
	private Pais pais = new Pais();
	private DataModel listaPaises;
	private List<Pais> filteredPaises;
	private Boolean isInsercao;
	private Boolean isAlteracao;	
	private List<Pais> paises = new ArrayList<Pais>();
	private List<UnidadeFederacao> ufs = new ArrayList<UnidadeFederacao>();

	
	public PaisController() {		
	}	
	
	public Pais getPais() {
		return pais;
	}

	public void setPais(Pais pais) {
		this.pais = pais;
	}	
	
	public List<Pais> getFilteredPaises() {
		return filteredPaises;
	}

	public void setFilteredPaises(List<Pais> filteredPaises) {
		this.filteredPaises = filteredPaises;
	}

	public DataModel getListarPaises() {
		List<Pais> lista = new PaisDaoImp().list();
		listaPaises = new ListDataModel(lista);
		return listaPaises;
	}
		
	public List<UnidadeFederacao> getUfsByPais() {							
		ufs = new PaisDaoImp().getUFsByPais(this.pais.getCodigo());
		return ufs;
	}
	
	public void actionCarregaUfs() {
		System.out.println("entrou actionCarregaUfs");
		ufs.clear();
		try {
			this.pais.getCodigo();
		} catch(NullPointerException e) {
			return;
		}						
		this.getUfsByPais();
	}	
	
	public String prepararAdicionarPais() {
		pais = new Pais();
		isInsercao = true;
		isAlteracao = false;
		return "gerenciarPais";
	}

	public String prepararAlterarPais() {
		pais = (Pais) (listaPaises.getRowData());
		isInsercao = false;
		isAlteracao = true;
		return "gerenciarPais";
	}

	public String excluirPais() {
		Pais paisTemp = (Pais) (listaPaises.getRowData());
		PaisDao dao = new PaisDaoImp();
		dao.remove(paisTemp);
		return "index";
	}

	public String adicionarPais() {
		PaisDao dao = new PaisDaoImp();
		dao.save(pais);
		return "index";
	}

	public String alterarPais() {
		PaisDao dao = new PaisDaoImp();
		dao.update(pais);
		return "index";
	}

	public Boolean getIsInsercao() {
		return isInsercao;
	}

	public void setIsInsercao(Boolean insercao) {
		this.isInsercao = insercao;
	}

	public Boolean getIsAlteracao() {
		return isAlteracao;
	}

	public void setIsAlteracao(Boolean alteracao) {
		this.isAlteracao = alteracao;
	}
		
	public List<Pais> getPaises() {		
		paises = new PaisDaoImp().list();
		return paises;
	}

	public void setPaises(List<Pais> paises) {
		this.paises = paises;
	}

	public List<UnidadeFederacao> getUfs() {
		return ufs;
	}

	public void setUfs(List<UnidadeFederacao> ufs) {
		this.ufs = ufs;
	}
	
	
	
}

Managed Bean da classe UnidadeFederacao

package control;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import dao.UnidadeFederacaoDao;
import dao.UnidadeFederacaoDaoImp;

import model.Municipio;
import model.UnidadeFederacao;


@ManagedBean
@ViewScoped
public class UnidadeFederacaoController implements Serializable {
	
	private UnidadeFederacao uf = new UnidadeFederacao();
	private DataModel listaUfs;
	private List<UnidadeFederacao> filteredUfs;
	private Boolean isInsercao;
	private Boolean isAlteracao;	
	private List<UnidadeFederacao> ufs = new ArrayList<UnidadeFederacao>();
	private List<Municipio> municipios = new ArrayList<Municipio>();	
	
	public UnidadeFederacaoController() {		
	}
	
	public UnidadeFederacao getUf() {
		return uf;
	}

	public void setUf(UnidadeFederacao uf) {
		this.uf = uf;
	}

	public List<UnidadeFederacao> getFilteredUfs() {
		return filteredUfs;
	}

	public void setFilteredUfs(List<UnidadeFederacao> filteredUfs) {
		this.filteredUfs = filteredUfs;
	}

	public DataModel getListarUfs() {
		List<UnidadeFederacao> lista = new UnidadeFederacaoDaoImp().list();
		listaUfs = new ListDataModel(lista);
		return listaUfs;
	}
	
	public List<Municipio> getMunicipiossByUf() {							
		municipios = new UnidadeFederacaoDaoImp().getMunicipiosByUF(this.uf.getCodigo());
		return municipios;
	}
	
	public void actionCarregaMunicipios() {
		municipios.clear();
		try {
			this.uf.getCodigo();
		} catch(NullPointerException e) {
			return;
		}		
		this.getMunicipiossByUf();
	}	
	
	public String prepararAdicionarUf() {
		uf = new UnidadeFederacao();
		isInsercao = true;
		isAlteracao = false;
		return "gerenciarUF";
	}

	public String prepararAlterarUf() {
		uf = (UnidadeFederacao) (listaUfs.getRowData());
		isInsercao = false;
		isAlteracao = true;
		return "gerenciarUF";
	}
	
	public String excluirUf() {
		UnidadeFederacao ufTemp = (UnidadeFederacao) (listaUfs.getRowData());
		UnidadeFederacaoDao dao = new UnidadeFederacaoDaoImp();
		dao.remove(ufTemp);
		return "index";
	}	
		
	public String adicionarUf() {
		UnidadeFederacaoDao dao = new UnidadeFederacaoDaoImp();
		dao.save(uf);
		return "index";
	}

	public String alterarUf() {
		UnidadeFederacaoDao dao = new UnidadeFederacaoDaoImp();
		dao.update(uf);
		return "index";
	}	
	
	public Boolean getIsInsercao() {
		return isInsercao;
	}

	public void setIsInsercao(Boolean insercao) {
		this.isInsercao = insercao;
	}

	public Boolean getIsAlteracao() {
		return isAlteracao;
	}

	public void setIsAlteracao(Boolean alteracao) {
		this.isAlteracao = alteracao;
	}	

	public List<UnidadeFederacao> getUfs() {		
		ufs = new UnidadeFederacaoDaoImp().list();
		return ufs;
	}

	public void setUfs(List<UnidadeFederacao> ufs) {
		this.ufs = ufs;
	}

	public List<Municipio> getMunicipios() {
		return municipios;
	}

	public void setMunicipios(List<Municipio> municipios) {
		this.municipios = municipios;
	}			
	
}

Managed Bean da classe Municipio

package control;

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

import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import dao.MunicipioDao;
import dao.MunicipioDaoImp;

import model.Municipio;

@ManagedBean
@ViewScoped
public class MunicipioController implements Serializable {
	
	private Municipio municipio;
	private DataModel listaMunicipios;
	private List<Municipio> filteredMunicipios;
	private Boolean isInsercao;
	private Boolean isAlteracao;
	
	public MunicipioController() {		
	}
	
	public Municipio getMunicipio() {
		return municipio;
	}

	public void setMunicipio(Municipio municipio) {
		this.municipio = municipio;
	}	
	
	public List<Municipio> getFilteredMunicipios() {
		return filteredMunicipios;
	}

	public void setFilteredTiposDocumentos (List<Municipio> filteredMunicipios) {
		this.filteredMunicipios = filteredMunicipios;
	}

	public DataModel getListarMunicipios() {
		List<Municipio> lista = new MunicipioDaoImp().list();
		listaMunicipios = new ListDataModel(lista);
		return listaMunicipios;
	}

	public String prepararAdicionarMunicipio() {
		municipio = new Municipio();
		isInsercao = true;
		isAlteracao = false;
		return "gerenciarMunicipio";
	}

	public String prepararAlterarMunicipio() {
		municipio = (Municipio) (listaMunicipios.getRowData());
		isInsercao = false;
		isAlteracao = true;
		return "gerenciarMunicipio";
	}
	
	public String excluirMunicipio() {
		Municipio municipioTemp = (Municipio) (listaMunicipios.getRowData());
		MunicipioDao dao = new MunicipioDaoImp();
		dao.remove(municipioTemp);
		return "index";
	}

	public String adicionarMunicipio() {
		MunicipioDao dao = new MunicipioDaoImp();
		dao.save(municipio);
		return "index";
	}

	public String alterarMunicipio() {
		MunicipioDao dao = new MunicipioDaoImp();
		dao.update(municipio);
		return "index";
	}

	public Boolean getIsInsercao() {
		return isInsercao;
	}

	public void setIsInsercao(Boolean insercao) {
		this.isInsercao = insercao;
	}

	public Boolean getIsAlteracao() {
		return isAlteracao;
	}

	public void setIsAlteracao(Boolean alteracao) {
		this.isAlteracao = alteracao;
	}	

}

Classe Cliente

package model;

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

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "cliente")
public class Cliente implements Serializable {

	@Id
	@GeneratedValue
	@Column(name = "id_cliente")
	private Integer codigo;
	@Column(nullable = false, length = 50)
	private String nome;
	@Column(name = "tipo_logradouro", length = 7)
	private String tipoLogradouro;
	@Column(length = 100)
	private String logradouro;
	private Integer numero;
	@Column(length = 50)
	private String bairro;
	@Column(length = 8)
	private String cep;
	@Column(length = 50)
	private String email;
	@Column(length = 15)
	private String telefone;
	@Column(name = "data_nascimento")
	@Temporal(TemporalType.DATE)
	private Date dataNascimento;
	@Column(length = 50)
	private String pai;
	@Column(length = 50)
	private String mae;
	@Column(name = "estado_civil", length = 20)
	private String estadoCivil;
	@Column(nullable = false, length = 14)
	private String cpf;
	@Column(length = 20)
	private String complemento;
	@ManyToOne
	@JoinColumn(name = "id_tipo_documento")
	private TipoDocumento tipoDocumento;
	@Column(name = "numero_documento", length = 30)
	private String numeroDocumento;
	@Column(name = "orgao_expedidor", length = 5)
	private String orgaoExpedidor;
	@Column(name = "data_expedicao")
	@Temporal(TemporalType.DATE)
	private Date dataExpedicao;
	@Column(name = "profissao", length = 50)
	private String profissao;
	@ManyToOne
	@JoinColumn(name = "id_municipio")
	private Municipio municipio;

	public Cliente() {
	}

	public void setMunicipio(Municipio municipio) {
		this.municipio = municipio;
	}

	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getLogradouro() {
		return logradouro;
	}

	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}

	public Integer getNumero() {
		return numero;
	}

	public void setNumero(Integer numero) {
		this.numero = numero;
	}

	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dtNascimento) {
		this.dataNascimento = dtNascimento;
	}

	public String getPai() {
		return pai;
	}

	public void setPai(String pai) {
		this.pai = pai;
	}

	public String getMae() {
		return mae;
	}

	public void setMae(String mae) {
		this.mae = mae;
	}

	public String getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(String estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getComplemento() {
		return complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	public String getNumeroDocumento() {
		return numeroDocumento;
	}

	public void setNumeroDocumento(String numeroDocumento) {
		this.numeroDocumento = numeroDocumento;
	}

	public String getOrgaoExpedidor() {
		return orgaoExpedidor;
	}

	public void setOrgaoExpedidor(String orgaoExpedidor) {
		this.orgaoExpedidor = orgaoExpedidor;
	}

	public Date getDataExpedicao() {
		return dataExpedicao;
	}

	public void setDataExpedicao(Date dataExpedicao) {
		this.dataExpedicao = dataExpedicao;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public TipoDocumento getTipoDocumento() {
		return tipoDocumento;
	}

	public void setTipoDocumento(TipoDocumento tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	}

	public String getProfissao() {
		return profissao;
	}

	public void setProfissao(String profissao) {
		this.profissao = profissao;
	}

	public Municipio getMunicipio() {
		return municipio;
	}

	public String getTipoLogradouro() {
		return tipoLogradouro;
	}

	public void setTipoLogradouro(String tipoLogradouro) {
		this.tipoLogradouro = tipoLogradouro;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
	
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
		result = prime * result + ((nome == null) ? 0 : nome.hashCode());
		return result;
	}

	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Cliente other = (Cliente) obj;
		if (codigo == null) {
			if (other.codigo != null)
				return false;
		} else if (!codigo.equals(other.codigo))
			return false;
		if (nome == null) {
			if (other.nome != null)
				return false;
		} else if (!nome.equals(other.nome))
			return false;
		return true;
	}	

}

Também sou iniciante no Java, e é bem por isso que estou passando por essas situações. Estou fazendo esse projeto para o meu TCC…

Cara será que não é porque seus controllers estão com a primeira letra minúscula no xhtml, e no lado do servidor estão com letra maiúscula?
Tipo, no xhtml você chama paisController, e no server side, o nome dele é PaisController.
Pelo que sei, java é case sensitive, não sei se nesse caso tambem se aplica.

Mesmo assim é estranho se for isso, pq vc diz que sua classe cliente funciona e ela também está assim…rs

Bom, é uma tentativa…ve aí…

Falow

No xhtml os MB iniciam com letra minúscula mesmo. Com certeza não é isso… mas obrigado pela tentativa.