Javax.servlet.ServletException: java.sql.SQLException: After end of result set

Boa Tarde,

estou executando essa Action, e obtenho esse erro na validação do usuario:

javax.servlet.ServletException: java.sql.SQLException: After end of result set

Action

package strutsdemo.action;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
import strutsdemo.form.LoginFormNew;
import strutsdemo.bean.AdminUsers;

public class LoginActionNew extends Action {


public ActionForward perform(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {

return this.execute(mapping,form,request,response);

}

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {

boolean validLogin=false;

/* Leitura do path que está mapeado no struts-config.xml
* na action "login"
* <action path="/login"
* ...
* ><forward name="login" path="/jsp/principal.jsp"/>
*/

ActionForward actionForward = mapping.findForward("login");
ActionErrors errors = new ActionErrors();

LoginFormNew loginForm=(LoginFormNew)form;
String userName = null;
String password = null;

if (loginForm != null){

userName = loginForm.getUserName();
password = loginForm.getPassword();

try {
AdminUsers adminusers = new AdminUsers();
validLogin = adminusers.autenticaLogin(userName, password);
}
catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException(e);

}

if (validLogin){

/* Leitura do path que está mapeado no struts-config.xml
* na action "login"
* <action path="/login"
* ...
* ><forward name="usuarioOK" path="/jsp/principal.jsp"/>
*/

actionForward = mapping.findForward("usuarioOK");
request.getSession(true).setAttribute("USERNAME",userName);

}

else { errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.login.authenticate"));

}

if (!errors.isEmpty()) {

saveErrors(request, errors);

}


}

return (actionForward);

}

}

Bean

//LOGIN 2

public boolean autenticaLogin(String username, String password) throws SQLException{

Connection conn = null; 
Statement  stmt = null; 
ResultSet  rs   = null; 
String sql = "SELECT * FROM usuario WHERE login = '"+username+"' and senha = '"+password+"'"; 
boolean contatos; 
try{ 

conn = getConnection(); 
stmt = conn.createStatement(); 
rs   = stmt.executeQuery(sql); 

while (rs.next()){ 
	String nomeCompleto = rs.getString("nome"); 
}

if (rs.getString("nome")!= null) { 
contatos = true; 
} 
else{ System.out.println("Usuario invalido");
contatos = false;
}

}
catch (SQLException e) {
		throw e;
} 
finally{ closeAll(conn,stmt,rs); 
}
return contatos;
}
// FIM LOGIN

alguém tem alguma dica?

[code]while (rs.next()){
String nomeCompleto = rs.getString(“nome”);
}

if (rs.getString(“nome”)!= null) { [/code]

preste atenção nessa parte do codigo…

quando vc faz while(rs.next), ocorre um loop q leva o cursor do resultSet até a posição depois da ultima

então vc não pode executar rs.getString(“nome”) depois da ultima posição, pq não tem nada lá…

Obrigado, eu acertei aqui, vi minha falha!

Grato,

mictexx