org.primefaces.expression.ComponentNotFoundException: Cannot find component for expression “endereco:form” referenced from “j_idt77:endereco:cep”.
Opá, estou com esse erro acima, estou tentando fazer um auto preenchimento de um form com base no cep via ajax
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:adm="http://github.com/adminfaces"
template="/WEB-INF/templates/template.xhtml">
<ui:define name="body">
<p:panel styleClass="card no-border">
<p:tooltip />
<h:form>
<div class="ui-g ui-fluid">
<div class="ui-g-12 ui-sm-12">
<h3 style="text-align: center;">Cadastro de Cliente</h3>
</div>
<div class="ui-g-2 ui-sm-12">
<div class="ui-material">
<p:inputMask mask="999.999.999-99" />
<p:outputLabel value="CPF" />
</div>
</div>
<div class="ui-g-10 ui-sm-12"></div>
<div class="componente ui-g-4 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" />
<p:outputLabel value="Nome" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-2 ui-sm-12">
<div class="ui-material">
<p:inputMask mask="(99) 9 9999-9999 " />
<p:outputLabel value="Celular" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-2 ui-sm-12">
<div class="ui-material">
<p:calendar id="material-calendar" showOn="both" required="true">
<p:ajax event="dateSelect" global="false"
onstart="adminMaterial()" />
</p:calendar>
<p:outputLabel for="material-calendar" value="Data de Nascimento" />
<p:message for="material-calendar" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-1 ui-sm-12">
<div class="ui-material">
<p:selectOneMenu id="select" value="#{userLoginMB.selected}"
required="true">
<f:selectItem itemLabel="5MB" />
<f:selectItem itemLabel="10MB" itemValue="Credit Card" />
<f:selectItem itemLabel="15MB" itemValue="Deposit" />
<f:selectItem itemLabel="20MB" itemValue="Cash" />
</p:selectOneMenu>
<p:outputLabel for="select" value="Plano" />
<p:message for="select" />
</div>
</div>
<p:panel styleClass="card-panel" header="Endereço"
style="width:100%; margin-top:10px;">
<div class="ui-g ui-fluid">
<h:form id="form">
<div class="ui-g-1 ui-sm-12">
<div class="ui-material">
<p:inputMask id="cep" idmask="99999-999" required="true"
value="#{serviceBean.cep}"
requiredMessage="O Campo CEP é obrigatório.">
<p:ajax event="blur" update=":form"
listener="#{serviceBean.buscarCep}" />
</p:inputMask>
<p:outputLabel value="CEP" />
</div>
</div>
<div class="ui-g-11 ui-sm-12"></div>
<div class="ui-g-12 ui-sm-12"></div>
<div class="ui-g-2 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" value="#{serviceBean.cidade}" />
<p:outputLabel value="Cidade" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-2 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" value="#{serviceBean.bairro}" />
<p:outputLabel value="Bairro" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-1 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" />
<p:outputLabel value="Numero" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-3 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" />
<p:outputLabel value="Complemento" />
</div>
</div>
<div class="ui-g-5 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" />
<p:outputLabel value="Rua" />
</div>
</div>
</h:form>
<div class="ui-g-7 ui-sm-12"></div>
<div class="ui-g-12 ui-sm-12"></div>
<div class="ui-g-4 ui-sm-12">
<div class="ui-material">
<p:inputTextarea id="textarea" required="true" />
<p:outputLabel for="textarea" value="Ponto de Referência" />
<p:message for="textarea" />
</div>
</div>
</div>
</p:panel>
<div class="ui-g-12">
<p:commandButton id="submitButton" styleClass="btn-primary"
value="Salvar" update="@form" ignoreAutoUpdate="true" />
</div>
</div>
</h:form>
</p:panel>
</ui:define>
</ui:composition>
package br.edu.ifpb.bean;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import br.edu.ifpb.utilitarios.CepWebService;
@ManagedBean
@RequestScoped
public class ServiceBean {
private String cep = null;
private String tipoLogradouro;
private String logradouro;
private String estado;
private String cidade;
private String bairro;
public void buscarCep() {
try {
CepWebService cws = new CepWebService(getCep());
if (cws.getResultado() == 1) {
setTipoLogradouro(cws.getTipoLogradouro());
setLogradouro(cws.getLogradouro());
setEstado(cws.getEstado());
setCidade(cws.getCidade());
setBairro(cws.getBairro());
} else {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cep não encontrado!", "Cep não encontrado!"));
}
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Servidor não está respondendo!", "Servidor não está respondendo"));
}
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getTipoLogradouro() {
return tipoLogradouro;
}
public void setTipoLogradouro(String tipoLogradouro) {
this.tipoLogradouro = tipoLogradouro;
}
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
}
o erro está mais especificamente aqui
<p:panel styleClass="card-panel" header="Endereço"
style="width:100%; margin-top:10px;">
<div class="ui-g ui-fluid">
<h:form id="endereco">
<div class="ui-g-1 ui-sm-12">
<div class="ui-material">
<p:inputMask id="cep" idmask="99999-999" required="true"
value="#{serviceBean.cep}"
requiredMessage="O Campo CEP é obrigatório.">
<p:ajax event="blur" update="endereco"
listener="#{serviceBean.buscarCep}" />
</p:inputMask>
<p:outputLabel value="CEP" />
</div>
</div>
<div class="ui-g-11 ui-sm-12"></div>
<div class="ui-g-12 ui-sm-12"></div>
<div class="ui-g-2 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" value="#{serviceBean.cidade}" />
<p:outputLabel value="Cidade" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-2 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" value="#{serviceBean.bairro}" />
<p:outputLabel value="Bairro" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-1 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" />
<p:outputLabel value="Numero" />
</div>
</div>
<div class="ui-g-1 ui-sm-12"></div>
<div class="ui-g-3 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" />
<p:outputLabel value="Complemento" />
</div>
</div>
<div class="ui-g-5 ui-sm-12">
<div class="ui-material">
<p:inputText required="true" />
<p:outputLabel value="Rua" />
</div>
</div>
</h:form>
<div class="ui-g-7 ui-sm-12"></div>
<div class="ui-g-12 ui-sm-12"></div>
<div class="ui-g-4 ui-sm-12">
<div class="ui-material">
<p:inputTextarea id="textarea" required="true" />
<p:outputLabel for="textarea" value="Ponto de Referência" />
<p:message for="textarea" />
</div>
</div>
</div>
</p:panel>