Olá bom dia!
Estou com o seguinte problema:
Estou precisando guardar o usuario da da sessao. Para isso criei uma classe sessao
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import br.com.directusweb.domain.Usuarios;
public class Sessao {
public void inserirAtributoSessao(String nome, Object valor) {
((HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true)).setAttribute(nome, valor);
}
public void removerAtributoSessao(String nome) {
((HttpSession) (FacesContext.getCurrentInstance().getExternalContext().getSession(true))).removeAttribute(nome);
}
public Object obterAtributoSessao(String nome) {
return ((HttpSession) (FacesContext.getCurrentInstance().getExternalContext().getSession(true)))
.getAttribute(nome);
}
public Usuarios getUsuarioLogado() {
return (Usuarios) obterAtributoSessao("usuarioLogado");
}
public void invalidarSessao() {
((HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false)).invalidate();
}
Depois tenho a classe bean
public Usuarios usuarios = new Usuarios();
private int idUsuario;
private String Nome;
private String pass;
public Usuarios usuarioLogado = null;
public Sessao sessao = new Sessao();
UsuariosDAO daousuario = new UsuariosDAO();
public Usuarios getUsuarios() {
return usuarios;
}
public void setUsuarios(Usuarios usuarios) {
this.usuarios = usuarios;
}
public int getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(int idUsuario) {
this.idUsuario = idUsuario;
}
public String getNome() {
return Nome;
}
public void setNome(String nome) {
Nome = nome;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public Usuarios getUsuarioLogado() {
return usuarioLogado;
}
public void setUsuarioLogado(Usuarios usuarioLogado) {
this.usuarioLogado = usuarioLogado;
}
public Sessao getSessao() {
return sessao;
}
public void setSessao(Sessao sessao) {
this.sessao = sessao;
}
public UsuariosDAO getDaousuario() {
return daousuario;
}
public void setDaousuario(UsuariosDAO daousuario) {
this.daousuario = daousuario;
}
public String validar(Usuarios usuarios) throws SQLException {
UsuariosDAO dao = new UsuariosDAO();
if (dao.validarUsuario(usuarios) != null) {
usuarioLogado = sessao.getUsuarioLogado();
return "dashboard.xhtml";
} else
// System.out.println("Nao entrou no if do bean");
return "access-denied.xhtml";
}
public static void main(String[] args) throws SQLException {
UsuariosDAO dao = new UsuariosDAO();
Usuarios usuario = new Usuarios();
usuario.NOME = "Weldes";
usuario.PASS = "123";
System.out.println(usuario.NOME +" :"+ usuario.PASS);
System.out.println(dao.validarUsuario(usuario));
}
e depois a classe DAO
public Usuarios validarUsuario(Usuarios usuarios) throws SQLException {
StringBuilder sql = new StringBuilder();
System.out.println("Usuarios dentro do DAO: "+usuarios.getNOME() + " Senha: "+usuarios.getPASS());
sql.append("SELECT * FROM usuario where usuario.nome = ? and usuario.pass = ?");
Connection conexao = Conexao2.conectar();
System.out.println(conexao.getCatalog() + " é a conexao");
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, usuarios.NOME);
comando.setString(2, usuarios.PASS);
ResultSet resultado = comando.executeQuery();
if (resultado.next()) {
Usuarios usuarioLogado = new Usuarios();
usuarioLogado.setIdUsuario(resultado.getInt("idUsuario"));
usuarioLogado.setNOME(resultado.getString("NOME"));
usuarioLogado.setPASS(resultado.getString("PASS"));
Sessao sessao = new Sessao();
System.out.println("usuario: "+usuarioLogado.NOME);
sessao.inserirAtributoSessao("usuarioLogado", usuarioLogado);
return usuarioLogado;
}
return null;
}
O problema é que estava funcionando… e agora esta dando a mensagem
Weldes :123
Usuarios dentro do DAO: Weldes Senha: 123
cadusu é a conexao
usuario: WELDES
Exception in thread “main” java.lang.NullPointerException
at br.com.directusweb.util.Sessao.inserirAtributoSessao(Sessao.java:11)
at br.com.directusweb.dao.UsuariosDAO.validarUsuario(UsuariosDAO.java:48)
at br.com.directusweb.bean.LoginBean.main(LoginBean.java:104)
Nao estou conseguindo identificar o nullPointerException. Alguem consegue me dar uma luz?