Java.lang.IllegalStateException: Response has already been committed

2 respostas
M

Olá, postei o meu problema no fórum de Java Básico, mas não tive resposta... então eu acho que cabe melhor aqui...

Segue o erro:

07/03/26 10:32:10 java.lang.IllegalStateException: Response has already been committed
07/03/26 10:32:10 at com.evermind.server.http.EvermindHttpServletResponse.resetBuffer (EvermindHttpServletResponse.java:1901)
07/03/26 10:32:10 at com.evermind.server.http.ServletRequestDispatcher.forward (ServletRequestDispatcher.java:211)
07/03/26 10:32:10 at com.evermind.server.http.GetParametersRequestDispatcher.forward (GetParametersRequestDispatcher.java:257)
07/03/26 10:32:10 at br.sp.sso.control.AlunoEgressos.doGet(AlunoEgressos.java:941)
07/03/26 10:32:10 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
07/03/26 10:32:10 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
07/03/26 10:32:10 at com.evermind.server.http.ServletRequestDispatcher.invoke (ServletRequestDispatcher.java:765)
07/03/26 10:32:10 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal (ServletRequestDispatcher.java:317)
07/03/26 10:32:10 at com.evermind.server.http.HttpRequestHandler.processRequest (HttpRequestHandler.java:793)
07/03/26 10:32:10 at com.evermind.server.http.AJPRequestHandler.run (AJPRequestHandler.java:208 )
07/03/26 10:32:10 at com.evermind.server.http.AJPRequestHandler.run (AJPRequestHandler.java:125)
07/03/26 10:32:10 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run (ReleasableResourcePooledExecutor.java:192)
07/03/26 10:32:10 at java.lang.Thread.run(Thread.java:534)

O meu código:
package br.sp.sso.control;
 
 import java.io.IOException;
 
 import java.sql.Connection;
 import java.sql.Statement;
 import java.sql.SQLException;
 
 import oracle.br.util.ConnectionPool;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import oracle.br.util.RCDMessageHandler;
 
 public class AlunoEgressos extends HttpServlet{
  
 	private Connection conn = null;
 	private Statement stmt = null;      
 	 
 	private static final String SID = "rcd01_site";
 
 	public void init(ServletConfig config) throws ServletException{
 		super.init(config);
 	}
 
 	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
 
 		String nmCompleto  = request.getParameter("nm_completo");
 		String autorizacaoDados = request.getParameter("autorizacao_dados");
 
 		try{
 
 		 RCDMessageHandler msg = RCDMessageHandler.getInstance();
 		 
 		 StringBuffer message = new StringBuffer();
 		 
 		 message.append( "\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
 		 message.append( "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" );
 		 message.append( "<head>\n" );
 		 message.append( "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n" );
 		 message.append( "<title></title>\n" );
 		 message.append( "</head>\n" );
 		 message.append( "<body>\n" );
 		 message.append( "<table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\">\n" );
 		 message.append( "<tr>\n" );
 		 message.append( "<td align=\"center\">\n" );
 		 message.append( "</td>\n" );
 		 message.append( "</tr>\n" );
 		 message.append( "<tr>\n" );
 		 message.append( "<td align=\"left\"> </td>\n" );
 		 message.append( "</tr>\n" );
 		 if( nmCompleto != "" && nmCompleto != null ){
 			 message.append( "<tr>\n" );
 			 message.append( "<td align=\"left\">\n" );
 			 message.append( "<font color=\"#666666\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\n" );
 			 message.append( "<b>Nome Completo:</b> " + nmCompleto + "<br>\n" );
 			 message.append( "</font>\n" );
 			 message.append( "&lt;/td&gt;\n" );
 			 message.append( "&lt;/tr&gt;\n" );
 		 }
 		 if( autorizacaoDados != "" && autorizacaoDados != null ){
 			 message.append( "&lt;tr&gt;\n" );
 			 message.append( "&lt;td align=\"left\"&gt;\n" );
 			 message.append( "<font color=\"#666666\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\n" );
 			 message.append( "<b>Autorizo o envio dos dados cadastrais para a Associação de Ex-alunos:</b> ");
 			 if( autorizacaoDados.equals("S") ) message.append( "Sim" );
 			 else message.append( "Não" ); 
 			 message.append( "<br>\n" );
 			 message.append( "</font>\n" );
 			 message.append( "&lt;/td&gt;\n" );
 			 message.append( "&lt;/tr&gt;\n" );
 		 } 
 		 message.append( "&lt;tr&gt;\n" );
 		 message.append( "&lt;td align=\"center\"&gt; &lt;/td&gt;\n" );
 		 message.append( "&lt;/tr&gt;\n" );
 		 message.append( "&lt;tr&gt;\n" );
 		 message.append( "&lt;td align=\"center\"&gt;\n" );
 		 message.append( "&lt;/td&gt;\n" );
 		 message.append( "&lt;/tr&gt;\n" );
 		 message.append( "&lt;/table&gt;\n" );
 
 
 		 StringBuffer sql = new StringBuffer();
 		 
 		 sql.append("INSERT INTO EGRESSOS\n");
 		 sql.append("( id_egresso, nm_completo, sexo, cpf, rg, rg_emissor,");
 		 sql.append(" rg_uf_emissor, dia_nasc, mes_nasc, ano_nasc, end_res, num_res,");
 		 sql.append(" comp_res, bairro_res, cep_res, cidade_res, uf_res, email_contato,");
 		 sql.append(" ddd_tel_res, tel_res, ddd_celular, celular, escolaridade, curso_graduacao,"); 
 		 sql.append(" instituicao_graduacao, situacao_graduacao, conclusao_graduacao, curso_posgraduacao,");
 		 sql.append(" instituicao_posgraduacao, conclusao_posgraduacao, situacao_trabalho, cargo, nm_empresa,");
 		 sql.append(" end_com, num_com, comp_com, bairro_com, cep_com, cidade_com,");
 		 sql.append(" uf_com, ddd_tel_com, tel_com, email, autorizacao_dados )\n");
 		 sql.append(" VALUES \n");
 		 sql.append(" ( EGRESSOS_SQ.NEXTVAL, '" + nmCompleto + "', '" + sexo + "', '" + cpf + "', '" + rg + "', '" + rgEmissor + "',");
 		 sql.append(" '" + rgUfEmissor + "', '" + diaNasc + "', '" + mesNasc + "', '" + anoNasc + "', '" + endRes + "', '" + numRes + "',");
 		 sql.append(" '" + compRes + "', '" + bairroRes + "', '" + cepRes + "', '" + cidadeRes + "', '" + ufRes + "', '" + emailContato + "',");
 		 sql.append(" '" + dddTelRes + "', '" + telRes + "', '" + dddCelular + "', '" + celular + "', '" + escolaridade + "', '" + cursoGraduacao + "',");
 		 sql.append(" '" + instituicaoGraduacao + "', '" + situacaoGraduacao + "', '" + conclusaoGraduacao + "', '" + cursoPosgraduacao + "',");
 		 sql.append(" '" + instituicaoPosgraduacao + "', '" + conclusaoPosgraduacao + "', '" + situacaoTrabalho + "', '" + cargo + "', '" + nmEmpresa + "',"); 
 		 sql.append(" '" + endCom + "', '" + numCom + "', '" + compCom + "', '" + bairroCom + "', '" + cepCom + "', '" + cidadeCom + "',"); 
 		 sql.append(" '" + ufCom + "', '" + dddTelCom + "', '" + telCom + "', '" + email + "', '" + autorizacaoDados + "' ) ");
 		 
 		 boolean result;
 		 
 		 result = this.insert(sql.toString());
 		 
 		if(result == false){
 			request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Os dados não foram atualizados!").forward(request, response);
 		 }
 
                  msg.send("[email removido]", "[email removido]", "Atualização dos Dados Cadastrais de Egressos", "result=" + result + ".fim<br>" + message.toString() + sql.toString(), "HTML");
 		 
                  request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Dados atualizados com sucesso!").forward(request, response);
                  
 		}catch( SQLException es ){
                   es.printStackTrace();
                   request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Os dados não foram atualizados!").forward(request, response);      
                          
 		}catch( Exception ex ){
                   ex.printStackTrace();
                   request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Os dados não foram atualizados!").forward(request, response);
                          
 		}
                 
 	  
 	}
 
 	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
 	}
 	 
 	public boolean insert(String sql) throws SQLException, Exception{
 		boolean sucesso = false;
 		conn = ConnectionPool.getConnectionDS( SID );
 		if( conn!=null ){                       
                         stmt = conn.createStatement();
                         stmt.executeUpdate(sql);
       
                         sucesso = true;
 			close();
 		}
 		return sucesso;
 	}
 	 
 	private void close(){
 		try{
 			if( stmt != null ) stmt.close();
 			if( conn != null ) conn.close();
 		}catch( SQLException ex ){
 			ex.printStackTrace();
 		}
 	} 
 }

Desde já, obrigado!!!

2 Respostas

G

Tente substituir isso

if(result == false){
  			request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Os dados não foram atualizados!").forward(request, response);
  		 }
  
                   msg.send("[email removido]", "[email removido]", "Atualização dos Dados Cadastrais de Egressos", "result=" + result + ".fim<br>" + message.toString() + sql.toString(), "HTML");
  		 
                   request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Dados atualizados com sucesso!").forward(request, response);

por isso

if(result == false){
  			request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Os dados não foram atualizados!").forward(request, response);
  		 }
else{
  
                   msg.send("[email removido]", "[email removido]", "Atualização dos Dados Cadastrais de Egressos", "result=" + result + ".fim<br>" + message.toString() + sql.toString(), "HTML");
  		 
                   request.getRequestDispatcher("/jsp/default.jsp?newsID=923.dwt&testeira=722&result=Dados atualizados com sucesso!").forward(request, response);
}
M

Guilherme,

Não mudou nada, eu já tinha feito esse teste…!!! :frowning:

Obrigado!!!

Criado 27 de março de 2007
Ultima resposta 27 de mar. de 2007
Respostas 2
Participantes 2