Pau no cliente web

galera,

não sei pq cargas d’água meu cliente web nao me retorna nada, dizendo que está em um ponteiro nulo.

tenho uma classe com esse método:

[code] public Usuario[] getAutentica() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{

    ConectaBanco cb = new ConectaBanco();   
    ResultSet rs = cb.ExecutaSelect("select u.Codigo, u.Nome, u.Senha, u.UltimoAcesso from usuarios u where u.nome = '" + getNome() + "' and u.senha = '" + getSenha() + "'");
    ArrayList<Usuario> usuarios = new ArrayList<Usuario>();   
                 
    while(rs.next()) {       
        Usuario usuario = new Usuario();    
        usuario.setCodigo(rs.getString("codigo"));
        usuario.setNome(rs.getString("nome"));   
        usuario.setSenha(rs.getString("senha"));   
        usuario.setUltimoacesso(rs.getString("UltimoAcesso"));   
        usuarios.add (usuario);   
    }   
    return usuarios.toArray(new Usuario[0]);   
} [/code]

Minha página JSP está assim:

<jsp:useBean id="ClasseUsuarioAutentica" scope="session" class="com.tcc.UsuarioAutenticaProxy" /> <% ClasseUsuarioAutentica.setNome("Felipe"); ClasseUsuarioAutentica.setSenha("123"); com.tcc.Usuario[] usuario = ClasseUsuarioAutentica.getAutentica(); out.println(usuario[0].getNome()); %>

E recebo esse retorno no browser:

[code]org.apache.jasper.JasperException: An exception occurred processing JSP page /Aplicacao/ValidaUsuario.jsp at line 15

12: ClasseUsuarioAutentica.setNome(“Felipe”);
13: ClasseUsuarioAutentica.setSenha(“123”);
14: com.tcc.Usuario[] usuario = ClasseUsuarioAutentica.getAutentica();
15: out.println(usuario[0].getNome());
16:
17: %>
18:

java.lang.NullPointerException[/code]

Alguma dica por favor !!!

Onde foi que vc instaciou ClasseUsuarioAutentica? Se vc não vai instanciar então deve dizer que o método getAutentica é estático utilizando o modificador static.

Acho que pode ser isso… Como estão os métodos setNome e setSenha? também pode estar ocorrendo isso…

Cara ! matou !

Me explica pq ???

Olha oq mudei:

[code]private static Usuario usuario = null;

public static Usuario[] getAutentica() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{   
       
    ConectaBanco cb = new ConectaBanco();   
    ResultSet rs = cb.ExecutaSelect("select u.Codigo, u.Nome, u.Senha, u.UltimoAcesso from usuarios u where u.nome = '" + usuario.getNome() + "' and u.senha = '" + usuario.getSenha() + "'");
    ArrayList<Usuario> usuarios = new ArrayList<Usuario>();   
    System.out.println("select u.Codigo, u.Nome, u.Senha, u.UltimoAcesso from usuarios u where u.nome = '" + usuario.getNome() + "' and u.senha = '" + usuario.getSenha() + "'");                     
    while(rs.next()) {       
        Usuario usuario = new Usuario();    
        usuario.setCodigo(rs.getString("codigo"));
        usuario.setNome(rs.getString("nome"));   
        usuario.setSenha(rs.getString("senha"));   
        usuario.setUltimoacesso(rs.getString("UltimoAcesso"));   
        usuarios.add (usuario);   
    }   
    return usuarios.toArray(new Usuario[0]);   
} [/code]

No web cliente:

<% ClasseUsuario.setNome("felipe"); ClasseUsuario.setSenha("123"); ClasseUsuarioAcao.setUsuario(ClasseUsuario); com.tcc.Usuario[] usuario = ClasseUsuarioAcao.getAutentica(); out.println(usuario[0].getUltimoacesso()); %>

Bom acho que nesse caso vc pode estudar um pouco mais sobre orientação a objetos e sobre métodos estáticos(métodos de classes) e sobre metodos não estatico (métodos de instancias).

Só uma explicação breve, é que quando vc tem um método estático você não precisa instanciar um objeto da classe para poder acessar o metodo, e quando vc não tem metodos estaticos vc deve instanciar um objeto e a partir dele chamar os metodos!

T+