Erro autoComplete (Jsf) Prime Faces

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 problema é 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 = Nome Nome Nome Nome Nome
dez 22, 2016 2:47:35 PM 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.amarildo.model.Pessoa
at br.com.amarildo.util.PessoaConverter.getAsString(PessoaConverter.java:32)
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:

<!DOCTYPE html>
<ui:composition template="/WEB-INF/template/Layout.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
	xmlns:p="http://primefaces.org/ui" 
	xmlns:o="http://omnifaces.org/ui">
	<f:metadata>
		<o:viewParam name="id" value="#{cadastroFuncionarioBean.funcionario}" />
		<f:viewAction action="#{cadastroFuncionarioBean.prepararCadastro}" />
	</f:metadata>
	<ui:define name="titulo">Cadastro RH</ui:define>
	<ui:define name="corpo">
		<h1>Cadastro de Funcionários</h1>
		<h:form id="frm">
			<p:messages showDetail="false" showSummary="true" autoUpdate="true" />

			<h3>Dados Pessoais</h3>
			<p:panelGrid columns="4">

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

				<p:outputLabel value="Cpf" for="cpf" />
					<p:autoComplete id="cpf" size="14"
						value="#{cadastroFuncionarioBean.funcionario.cpf}"
						completeMethod="#{cadastroFuncionarioBean.pesquisarCpfs}" />

					<p:outputLabel value="Tipo" for="sexo" />
					<p:selectOneButton id="sexo"
						value="#{cadastroFuncionarioBean.funcionario.sexo}">
						<f:selectItems
							value="#{cadastroFuncionarioBean.tiposFuncionarios}"
							var="tipoFuncionario" itemValue="#{tipoFuncionario}"
							itemLabel="#{tipoFuncionario.sexo}" />
					</p:selectOneButton>
			
			</p:panelGrid>

			<h3>Endereço</h3>

			<p:panelGrid columns="4">

				<p:outputLabel value="Endereço" for="endereco" />
				<p:autoComplete id="endereco" size="60"
					value="#{cadastroFuncionarioBean.pessoa.endereco}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarEnderecos}" />

				<p:outputLabel value="Numero" for="numero" />
				<p:autoComplete id="numero" size="6"
					value="#{cadastroFuncionarioBean.pessoa.numero}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarNumeros}" />

				<p:outputLabel value="Complemento" for="complemento" />
				<p:autoComplete id="complemento" size="20"
					value="#{cadastroFuncionarioBean.pessoa.complemento}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarComplementos}" />

				<p:outputLabel value="Bairro" for="bairro" />
				<p:autoComplete id="bairro" size="30"
					value="#{cadastroFuncionarioBean.pessoa.bairro}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarBairros}" />

				<p:outputLabel value="Cidade" for="cidade" />
				<p:autoComplete id="cidade" size="30"
					value="#{cadastroFuncionarioBean.pessoa.cidade}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarCidades}" />

				<p:outputLabel value="Estado" for="estado" />
				<p:autoComplete id="estado" size="2"
					value="#{cadastroFuncionarioBean.pessoa.estado}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarEstados}" />

				<p:outputLabel value="Cep" for="cep" />
				<p:autoComplete id="cep" size="9"
					value="#{cadastroFuncionarioBean.pessoa.cep}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarCeps}" />

			</p:panelGrid>

			<h3>Dados de Admissão</h3>

			<p:panelGrid columns="2">

				<p:outputLabel value="Cargo" for="cargo" />
				<p:autoComplete id="cargo" size="60"
					value="#{cadastroFuncionarioBean.funcionario.cargo}"
					completeMethod="#{cadastroFuncionarioBean.pesquisarCargos}" />

				<p:outputLabel value="Salário" />
				<p:inputText size="12"
					value="#{cadastroFuncionarioBean.funcionario.salario}"
					label="salario">
					<f:convertNumber locale="pt_BR" maxFractionDigits="2"
						minFractionDigits="2" />
				</p:inputText>

				<p:outputLabel value="Data de Admissão" for="dataAdmissao" />
				<p:calendar id="dataAdmissao" size="12" pattern="dd/MM/yyyy"
					value="#{cadastroFuncionarioBean.funcionario.dataAdmissao}">
					<p:ajax event="dateSelect" update="@this dataAdmissao"
						process="@this dataAdmissao"
						listener="#{cadastroFuncionarioBean.dataAdmissaoAlterada}" />
				</p:calendar>

			</p:panelGrid>

			<p:commandButton value="Salvar"
				action="#{cadastroFuncionarioBean.salvar}" icon="ui-icon-disk"
				update="@form" />

		</h:form>
	</ui:define>
</ui:composition>

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)
//@FacesConverter("themeConverter")
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;
		System.out.println("Teste Coverte getAsObject Pessoa = "+value);
		if (value != null && !"".equals(value)) {
			retorno = this.pessoas.porId(new Long(value));
		}
		return retorno;
	}

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

}

caso alguém saiba e possa me ajudar fico grato

Veja que você referencia o valor do campo como sendo um objeto da classe Pessoa. Como o valor inserido é uma String, ele apresenta o erro de cast.

Obrigado pelo retorno, drsmachado.

o problema é que se eu fizer assim ={cadastroFuncionarioBean.pessoa.nome}, o autocomplete funciona, porem o var=“pessoa” itemLabel="#{pessoa.nome}" itemValue="#{pessoa}" forceSelection=“true” da o erro conforme abaixo e deixa de funcionar, e preciso desses campos visto que quando estou na tela consulta e clico em editar ele retorna para esse formulário já com o campo preenchido itemLabel="#{pessoa.nome}".

GRAVE: Error Rendering View[/CadastroFuncionario.xhtml] javax.el.PropertyNotFoundException: /CadastroFuncionario.xhtml @27,30 itemLabel="#{pessoa.nome}": Property 'nome' not found on type java.lang.String at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) at org.primefaces.component.autocomplete.AutoComplete.getItemLabel(AutoComplete.java:150) at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeSuggestionsAsList(AutoCompleteRenderer.java:500) 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) Caused by: javax.el.PropertyNotFoundException: Property 'nome' not found on type java.lang.String

mais uma vez Obrigado caso possa me ajudar.

Então tua arquitetura não foi bem definida. Você precisa encontrar um meio termo entre as duas necessidades.

Obrigado

Veja bem, você tem duas necessidades distintas e quer atendê-las com as mesmas ferramentas. Digamos assim, você tem um parafuso e um prego e precisa fazer com que ambos sejam fixados em uma parede.
É até possível utilizar o martelo ou uma chave e fenda para ambos, mas você terá mais facilidade se utilizar o martelo para o prego e a chave para o parafuso.