NullPointerException ao executar projeto Web

2 respostas
eliangela

Olá pessoal!

Estou tentando aprender programar Java para Web e estou encontrando problemas na hora de executar o código.
Quando eu peço para o Netbeans executar o código, acontece esse erro antes mesmo de abrir o navegador, logo depois que o Tomcat começa a rodar:

07/12/2009 21:56:52 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet AutenticaLogin threw exception java.lang.NullPointerException at br.integrado.aulaweb.AutenticaLogin.processRequest(AutenticaLogin.java:39) at br.integrado.aulaweb.AutenticaLogin.doPost(AutenticaLogin.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) 07/12/2009 21:59:00 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet AutenticaLogin threw exception java.lang.NullPointerException at br.integrado.aulaweb.AutenticaLogin.processRequest(AutenticaLogin.java:39) at br.integrado.aulaweb.AutenticaLogin.doPost(AutenticaLogin.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)

O compilador aponta o erro para a linha do código abaixo:

if (rs != null) { //segundo o compilador, o erro está nesta linha, mas eu coloquei um IF justamente pra não dar NullPointerException. if (rs.next()) { if (senha.equals(rs.getString("senhaUsuario"))) { response.sendRedirect("/login/logado.jsp"); } } else { response.sendRedirect("/login/novoLogin.jsp"); } }

Por favor pessoal… como eu não sei onde está acontecendo o erro, estou anexando o meu código todo, que não é muito grande, já que se trata de apenas uma telinha de login.

2 Respostas

edao69

Bom dia, tente criar um metodo no seu servlet chamada service e coloque toda a logica de validacao nele, para ele processar as requisições…

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		ResultSet rs = null;
		Conexao con = null;
		try {
			String login = request.getParameter("loginUsuario");
			String senha = request.getParameter("senhaUsuario");

			con = new Conexao();
			con.openConnection();
			rs = con.consulta("select senhaUsuario from usuario where "
					+ "loginUsuario = '" + login + "'");
			if (rs != null) {
				if (rs.next()) {
					if (senha.equals(rs.getString("senhaUsuario"))) {
						response.sendRedirect("/login/logado.jsp");
					}
				} else {
					response.sendRedirect("/login/novoLogin.jsp");
				}
			}
		} catch (SQLException ex) {
			System.out.println("Erro: " + ex.getMessage());
		} finally {
			out.close();
			try {
				if (rs != null) {
					rs.close();
				}
				if (con != null) {
					con.closeConnection();
				}
			} catch (SQLException ex) {
				System.out.println("Erro: " + ex.getMessage());
			}
		}
}

ele retorna nullPointer pois seu ResultSet faz a requisição e nao encontra nenhum usuario… creio que seja isso…

eliangela

Obrigada!
Quando chegar em casa hj eu testo e posto aqui a resposta.

Até mais

Criado 7 de dezembro de 2009
Ultima resposta 8 de dez. de 2009
Respostas 2
Participantes 2