Erro em Autenticar user no BD

2 respostas
D

Bom dia pessoal, estou com um erro a principio bem basico, mas sou novato e estou querendo fazer um login via autenticacao de usuario cadastrado no banco de dados:
me arquivo LoginAction

package doman;

import java.sql.<em>;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.</em>;

import org.mentawai.core.<em>;

import org.mentawai.action.</em>;

import org.mentawai.message.<em>;

import dataBase.</em>;
public class LoginAction extends BaseLoginAction {

ConexaoDB cnt = new ConexaoDB();

Connection c = cnt.getConn();

PreparedStatement stmt = null;

ResultSet rset = null;

FuncionarioDB usuario = null;

private static final String USERNAME_PASSWORD_WRONG_ERROR = “1”;

public String execute() throws Exception {

String user = input.getStringValue(“username”);

String pass = input.getStringValue(“password”);
if (user == null || user.trim().equals("")) {

addError(USERNAME_PASSWORD_WRONG_ERROR);

return ERROR;

}

if (pass == null || pass.trim().equals("")) {

addError(USERNAME_PASSWORD_WRONG_ERROR);

return ERROR;

}
try {

String query = "select nomefuncionario, login, senhafuncionario " +

"from cadfuncionario " +

“where login =’” + user + "’ " +

“and senhafuncionario = '” + pass + “’”;

Statement s = c.createStatement();
s.execute (query);

if (rset.next()) {

usuario = new FuncionarioDB();

usuario.setNome(rset.getString(nomefuncionario));

usuario.setLogin(rset.getString(login));

usuario.setSenha(rset.getString(senhafuncionario));

}
if(usuario==null||!usuario.getSenha().equals(pass)){

setUserSession(user);

setUserGroups(“users”);

return SUCCESS;

}

} catch(SQLException e) {

throw new ActionException(e);

} finally {

try { if (rset != null) rset.close(); } catch(Exception e) { }

try { if (stmt != null) stmt.close(); } catch(Exception e) { }

}

addError(USERNAME_PASSWORD_WRONG_ERROR);

return ERROR;

}
}

o erro qdo faço o login é na pagina jsp esse:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Exception while invoking action Login: null

org.mentawai.core.Controller.service(Controller.java:493)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

root cause

java.lang.NullPointerException

doman.LoginAction.execute(LoginAction.java:43)

org.mentawai.core.InvocationChain.invoke(InvocationChain.java:112)

org.mentawai.filter.RedirectAfterLoginFilter.filter(RedirectAfterLoginFilter.java:52)

org.mentawai.core.InvocationChain.invoke(InvocationChain.java:87)

org.mentawai.filter.AuthenticationFilter.filter(AuthenticationFilter.java:61)

org.mentawai.core.InvocationChain.invoke(InvocationChain.java:87)

org.mentawai.core.Controller.invokeAction(Controller.java:583)

org.mentawai.core.Controller.service(Controller.java:462)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.

MUITO OBRIGADO E DESCULPEM A PENTELHAÇÃO

2 Respostas

J

E ae!!!

Kra, o problema está na linha if (rset.next()) {… pois vc não inicializou o objeto rset, veja pelo log do erro java.lang.NullPointerException
também pelo log vc pode identificar onde ocorreu o erro doman.LoginAction.execute(LoginAction.java:43) .
então na linha acima do if onde vc executa a query vc deve inicializar o ResultSet assim: rset = s.execute (query);

Então é isso.

t+

D

valeu consegui resolveu…

abraços e obrigado pela resposta…

douglas

Criado 18 de setembro de 2006
Ultima resposta 18 de set. de 2006
Respostas 2
Participantes 2