Pessoal, estou recebendo o erro Target Unreachable, 'pessoa' returned null
nessa linha da minha page autentica.xhtml value="#{autenticacaoBean.usuario.funcionario.pessoa.cpf}"
O CPF é a chave de acesso ao sistema, porém ele ta travando nessa linha. Alguém pode me dizer onde estou errando?
<p:dialog header="Autenticação" closable="false" draggable="false"
resizable="false" global="true" visible="true">
<h:form>
<h:panelGrid columns="2">
<p:outputLabel for="cpf" value="CPF:" />
<p:inputMask id="cpf" mask="999.999.999-99" size="20"
required="true" requiredMessage="O campo CPF é obrigatório"
value="#{autenticacaoBean.usuario.funcionario.pessoa.cpf}"/>
<p:outputLabel for="senha" value="Senha:" />
<p:password id="senha" maxlength="8" size="20" required="true"
requiredMessage="O campo Senha é obrigatório"
value="#{autenticacaoBean.usuario.senha}"/>
</h:panelGrid>
<h:panelGrid columns="1">
<p:commandButton value="Entrar" update=":mensagem"
actionListener="#{autenticacaoBean.autenticar}" />
</h:panelGrid>
</h:form>
</p:dialog>
autenticaoBean
@ManagedBean
@SessionScoped
public class AutenticacaoBean {
private Usuario usuario;
private Usuario usuarioLogado;
public Usuario getUsuarioLogado() {
return usuarioLogado;
}
public void setUsuarioLogado(Usuario usuarioLogado) {
this.usuarioLogado = usuarioLogado;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
@PostConstruct
public void inciar() {
usuario = new Usuario();
usuario.setFuncionario(new Funcionario());
}
public void autenticar() {
try {
System.out.println("OK a");
UsuarioDAO usuariodao = new UsuarioDAO();
usuarioLogado = usuariodao.autenticar(usuario.getFuncionario().getPessoa().getCpf(), usuario.getSenha());
System.out.println("OK a2");
if(usuarioLogado == null) {
Messages.addGlobalError("CPF ou Senha incorretos");
return;
}
Faces.redirect("./pages/principal.xhtml");
}catch(IOException erro){
erro.printStackTrace();
}
}
public boolean temPermissoes(List<String>permissoes) {
for(String permissao : permissoes) {
if(usuarioLogado.getTipo() == permissao.charAt(0)) {
return true;
}
}
return false;
}
}