Salve pessoal !
Criei um formulário simples que recebe login/senha em um JSP normal. Esse JSP envia para um Servlet os dados para serem tratados e ação correta tomada.
Porém, estou recebendo insistentemente um IllegalStateException que eu ainda não consegui decifrar o motivo.
SEVERE: Servlet.service() for servlet autentica threw exception java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435) at br.com.caelum.jdbc.agenda.servlet.Autentica.service(Autentica.java:14) 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 br.com.caelum.jdbc.agenda.filters.EncodingFilter.doFilter(EncodingFilter.java:24) 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:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619)
Trecho do Servlet
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.getParameter("done") == null) {
response.sendRedirect("autentica.jsp");
}
Administrador admin = new Administrador(request.getParameter("login"), request.getParameter("senha"));
if (!admin.login()) {
response.sendRedirect("autentica.jsp");
}
request.getSession().setAttribute("login", "foobaz");
response.sendRedirect("index.jsp");
response.getWriter().flush();
response.getWriter().close();
}
Caso eu chame: http://localhost:8080/projeto/autentica (caminho mapeado para o Servlet acima) ele retorna essa exception nessa linha
Se eu submeter o formulário (que encontra-se nesta autentica.jsp) com dados ou sem dados também recebo tal erro.
Parece que ele está ignorando a condição que coloquei em !admin.login() -- que sempre retorna false, mas mesmo assim ele dá erro depois deste if :S - como naquele primeiro if que é o nome do botão, e acessando diretamente deveria cair nele, pois o botão no debugger está como nulo nestes casos.
Estou boiando no que está rolando. hehe
Alguém poderia me dar uma luz ?
Abraços !