Erro autoComplete (Jsf) Prime Faces

Bom dia!

pessoal, Depois de varias pesquisas e algumas implementação sem sucesso venho até vocês.

O problema e o seguinte tenho uma tela de cadastro e outra de consulta.

a tela consulta é uma dataTable simples com os nomes e na frente de cada nome o botão excluir e editar.

quando clico no botão editar, retorno para a tela cadastro.

até ai OK.

O prolema é que no campo nome: onde eu estou tentando implementar um autoComplete

quando digito uma letra onde ele deveria me retorna as sugestões.

recebo o seguinte erro segue abaixo:

Teste Coverte getAsString Pessoa = Amarildo dos Santos de Lima dez 08, 2016 10:02:56 AM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException GRAVE: Error Rendering View[/CadastroFuncionario.xhtml] java.lang.ClassCastException: java.lang.String cannot be cast to br.com.teste.model.Pessoa at br.com.amarildo.util.PessoaConverter.getAsString(PessoaConverter.java:31) at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeSuggestionsAsList(AutoCompleteRenderer.java:498) at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeSuggestions(AutoCompleteRenderer.java:393) at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeResults(AutoCompleteRenderer.java:123) at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeEnd(AutoCompleteRenderer.java:105) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:582) at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1689) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) at javax.faces.component.UIForm.visitTree(UIForm.java:371) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:403) at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:322) at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219) at org.omnifaces.context.OmniPartialViewContext.processPartial(OmniPartialViewContext.java:139) at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:1004) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:430) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at br.com.amarildo.util.AutorizacaoFilter.doFilter(AutorizacaoFilter.java:35) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)

segue o código do formulário abaixo:

<p:outputLabel value="Nome" for="nome" /> <p:autoComplete id="nome" size="60" value="#{cadastroFuncionarioBean.funcionario.pessoa}" completeMethod="#{cadastroFuncionarioBean.pesquisarNomes}" var="pessoa" itemValue="#{pessoa}" itemLabel="#{pessoa.nome}" />

segue meu converte que pega o Id e deve me retorna o nome:

`package br.com.util;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.inject.Inject;

import br.com.model.Pessoa;
import br.com.repository.Pessoas;

@FacesConverter(forClass = Pessoa.class)
public class PessoaConverter implements Converter {
@Inject // funciona graças ao OmniFaces
private Pessoas pessoas;

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
	Pessoa retorno = null;
	if (value != null && !"".equals(value)) {
		System.out.println("Teste Coverte getAsObject Pessoa = "+value);
		retorno = this.pessoas.porId(new Long(value));
	}
	return retorno;
}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
	if (value != null && !"".equals(value)) {
		System.out.println("Teste Coverte getAsString Pessoa = "+value);
		return ((Pessoa) value).getId().toString();
	}
	return null;
}

}`

caso alguém já tenha ideia como me ajudar fico grato

Att,

JavaX

No código que voce postou do componente autocomplete, voce não especifica o converter… talvez seja esse o motivo do erro.

O converter esta sendo chamado, A exception fala a respeito de Cast.

Faça um debug nessa linha e veja qual o valor do value

grato pelo retorno,

essa linha me retorna o id