Ola estou com um erro que não consigo enxergar onde errei , estou tentando fazer um login para minha aplicação ja alterei o codigo varias vezes mais erro persiste alguém me ajuda?
Classe LoginBean
package br.com.mjailton.vendasjsf.bean;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import br.com.mjailton.vendasjsf.dao.PessoaDAO;
import br.com.mjailton.vendasjsf.modelo.Pessoa;
@ManagedBean(name = “LoginMB”)
@ViewScoped
public class LoginBean {
// apoio
private String usuario = “”;
private String senha = “”;
private PessoaDAO pessoaDAO = new PessoaDAO();
private Pessoa pessoa;
public String envia() {
Pessoa pessoa = pessoaDAO.getPessoa(usuario);
if (pessoa == null) {
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Login não existe",
"Erro no Login!"));
return "";
}
if(!pessoa.getSenha().equals(senha)){
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Senha invalida",
"Erro no Login!"));
}
return null;
}
public PessoaDAO getPessoaDAO() {
return pessoaDAO;
}
public void setPessoaDAO(PessoaDAO pessoaDAO) {
this.pessoaDAO = pessoaDAO;
}
public Pessoa getPessoa() {
return getPessoa();
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
}
Classe PessoaDAO
package br.com.mjailton.vendasjsf.dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import br.com.mjailton.vendasjsf.modelo.Pessoa;
import br.com.mjailton.vendasjsf.util.JPAUtil;
public class PessoaDAO {
private EntityManager em;
public PessoaDAO() {
this.em = em;
}
public Pessoa getPessoa(String nomeUsuario) {
try {
Pessoa pessoa = (Pessoa) em
.createQuery(
"SELECT u from Pessoa u where u.nomeUsuario = :name")
.setParameter("name", nomeUsuario).getSingleResult();
return pessoa;
} catch (NoResultException e) {
return null;
}
}
public EntityManager getEm() {
return em;
}
public void setEm(EntityManager em) {
this.em = em;
}
}
Classe Pessoa
package br.com.mjailton.vendasjsf.modelo;
import javax.persistence.Entity;
import javax.persistence.Id;
import org.primefaces.component.password.Password;
@Entity
public class Pessoa {
@Id
private String pessoa;
private Password senha;
public String getPessoa() {
return pessoa;
}
public void setPessoa(String pessoa) {
this.pessoa = pessoa;
}
public Password getSenha() {
return senha;
}
public void setSenha(Password senha) {
this.senha = senha;
}
}
Classe login.xhtml
<h:head>
</h:head>
<h:body>
<h1>Login</h1>
<h:form>
<p:messages id="messages" />
<p:panelGrid columns="2">
<p:outputLabel for="nomeUsuario" value="Nome Usuário:" />
<p:inputText id="nomeUsuario" value="#{LoginMB.pessoa.pessoa}" />
<p:outputLabel for="senha" value="Senha:" />
<p:password id="senha" value="#{LoginMB.pessoa.senha}" />
<p:commandButton value="Enviar" icon="ui-icon-star" action="#{LoginMB.envia}" ajax="false">
</p:commandButton>
</p:panelGrid>
</h:form>
</h:body>
erro
Exception
javax.servlet.ServletException: /login.xhtml @18,86 value="#{LoginMB.pessoa.pessoa}": Target Unreachable, identifier [LoginMB] resolved to null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:671)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause
javax.el.PropertyNotFoundException: /login.xhtml @18,86 value="#{LoginMB.pessoa.pessoa}": Target Unreachable, identifier [LoginMB] resolved to null
com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
org.primefaces.util.ComponentUtils.getConverter(ComponentUtils.java:152)
org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:199)
javax.faces.component.UIInput.getConvertedValue(UIInput.java:1067)
javax.faces.component.UIInput.validate(UIInput.java:981)
javax.faces.component.UIInput.executeValidate(UIInput.java:1270)
javax.faces.component.UIInput.processValidators(UIInput.java:714)
javax.faces.component.UIComponentBase.processVa