[RESOLVIDO] Ajuda Uso de Ajax do Primefaces

Olá meus caros, estou com dificuldade pare renderizar um combo da minha página xhtml, a tag <p:ajax> está chamando certinho o meu metodo carregando as cidades de acordo com o estado mas na hora de atualizar a combo aparece o erro de Null Pointer, não sei pq visto que o combo está preenchido, por favor se puderem me ajudar. segue o codigo da página.

<?xml version='1.0' encoding='UTF-8' ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:p="http://primefaces.prime.com.tr/ui"  
    xmlns:f="http://java.sun.com/jsf/core">  
<f:view contentType="text/html">  
  
</f:view>  
<h:head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    <link rel="stylesheet" type="text/css" href="../estilos/padrao.css"/>  
</h:head>  
<h:body>  
    <h:form prependId="false">  
        <p:panel id="panel" header="Manutenção de Funcionário">  
            <table width="100%">  
                <tr>  
                    <td align="left">  
                        <p:commandButton value="Gravar" actionListener="#{funcionarioFrm.gravar}" update="msgs" />  
                    </td>  
                    <td align="right">  
                        <p:commandButton value="Voltar" action="../funcionario/lista.faces" ajax="false"/>  
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        <p:tabView effect="opacity" effectDuration="normal">  
                            <p:tab title="Dados Pessoais">  
                                <h:panelGrid columns="3">  
                                    <table>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Nome:" />  
                                                <p:inputText value="#{funcionarioFrm.funcionario.funcionario.nome}"  id="nome" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Telefone:" />   
                                                <p:inputMask mask="(99) 9999-9999" value="#{funcionarioFrm.funcionario.funcionario.telefone}" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Celular" />   
                                                <p:inputMask mask="(99) 9999-9999" value="#{funcionarioFrm.funcionario.funcionario.celular}"/>  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Data Nasc." />  
                                                <p:calendar value="#{funcionarioFrm.data}" effect="explode" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="CPF:" />   
                                                <p:inputMask mask="999.999.999-99"  value="#{funcionarioFrm.funcionario.funcionario.cpf}"/>  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Situação:"/>   
                                                <h:selectOneMenu styleClass="select" id="situacao" value="#{funcionarioFrm.funcionario.funcionario.situacao}">  
                                                    <f:selectItems value="#{funcionarioFrm.situacao}"/>  
                                                </h:selectOneMenu>  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Cargo:"/>  
                                                <h:selectOneMenu styleClass="select" id="cargo" value="#{funcionarioFrm.funcionario.funcionario.cargo}">  
                                                    <f:selectItems value="#{funcionarioFrm.cargo}"/>  
                                                </h:selectOneMenu>  
                                            </td>  
                                        </tr>  
                                    </table>  
                                </h:panelGrid>  
                            </p:tab>  
                            <p:tab title="Endereço">  
                                <h:panelGrid columns="3">  
                                    <table>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="UF:" />   
                                                <h:selectOneMenu styleClass="select" id="uf" value="#{funcionarioFrm.funcionario.funcionario.municipio.estado.id}">  
                                                    <f:selectItems value="#{funcionarioFrm.uf}" var="uf"/>  
                                                    <p:ajax listener="#{funcionarioFrm.carregaCidades}"  
                                                        event = "change"  
                                                        update = "cidade,msgs,comboCidade"  
                                                          
                                                        />  
                                                </h:selectOneMenu>  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Cidade:" />  
                                                <h:selectOneMenu disabled="#{funcionarioFrm.habilitaCidade}" styleClass="select" id="cidade" value="#{funcionarioFrm.funcionario.funcionario.municipio.id}">  
                                                    <f:selectItems id="comboCidade" value="#{funcionarioFrm.municipio}"/>  
                                                </h:selectOneMenu>  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Cep:" />   
                                                <p:inputMask mask="99999-999" value="#{funcionarioFrm.funcionario.funcionario.cep}" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Nº:" />   
                                                <p:inputText value="#{funcionarioFrm.funcionario.funcionario.numeroEndereco}"/>  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Bairro:" />   
                                                <p:inputText value="#{funcionarioFrm.funcionario.funcionario.bairro}" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Logradouro:" />   
                                                <p:inputText value="#{funcionarioFrm.funcionario.funcionario.logradouro}" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Complemento:" />   
                                                <p:inputText value="#{funcionarioFrm.funcionario.funcionario.complemento}"/>  
                                            </td>  
                                        </tr>  
                                    </table>  
                                </h:panelGrid>  
                            </p:tab>  
                            <p:tab title="Dados de Usuário">  
                                <h:panelGrid columns="3">  
                                    <table>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Login:" />  
                                                <p:inputText value="#{funcionarioFrm.funcionario.funcionario.usuario.login}" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Senha:" />   
                                                <p:password value="#{funcionarioFrm.funcionario.funcionario.usuario.senha}" feedback="true" minLength="6" />  
                                            </td>  
                                        </tr>  
                                        <tr>  
                                            <td>  
                                                <h:outputText value="Perfil:" />   
                                                <h:selectOneMenu styleClass="select" id="perfil" value="#{funcionarioFrm.funcionario.funcionario.usuario.perfil}">  
                                                    <f:selectItems value="#{funcionarioFrm.perfil}"/>  
                                                </h:selectOneMenu>  
                                            </td>  
                                        </tr>  
                                    </table>  
                                </h:panelGrid>  
                            </p:tab>  
                        </p:tabView>  
                    </td>  
                </tr>  
            </table>  
            <!--  AREA DE MENSAGENS -->  
            <table width="100%">  
               <tr>  
                  <td>  
                     <fieldset>  
                          <h:panelGroup id="erros">  
                            <p:messages id="msgs" showDetail="true" globalOnly="true"/>   
                          </h:panelGroup>  
                     </fieldset>  
                  </td>  
               </tr>                          
           </table>  
        </p:panel>  
    </h:form>  
</h:body>  
</html>  

Não seria melhor vc utilizar o ajax4jsf ao invés do ajax no primefaces?

Da uma olhada no retorno da sua consulta, NullPointer geralmente ocorre no seu backbean no momento de carregar o objeto da combo, aparentemente sua view está correta.

Outra idéia, da uma olhada no atributo funcionarioFrm (funcionario), possívelmente não está inicializada ou está inicializada com null.

flw

Não é erro nos objetos, estão todos preenchidos inclusive o SelectItem, o problema é na hora de renderizar o campo ele não renderiza, a página fica intacta não muda nada, mas no console aparece o seguinte erro: com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit GRAVE: java.lang.NullPointerException. Será que não é alguma tag q estou esquencedo de colocar??, com o <f:ajax> tenho o mesmo problema, realmente to quebrando a cabeça =/.

Galera o problema era o tipo de objeto que eu estava utilizando que era SelectItem[], dai dei uma olhada no site do prime e é utilizado Map<String,String> dai mudei e funciono. vlw.