"java.lang.IllegalStateException: Response has already been committed"

0 respostas
M

Olá, estou tendo o seguinte 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\">&nbsp;</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( "</td>\n" );
			 message.append( "</tr>\n" );
		 }
		 if( autorizacaoDados != "" && autorizacaoDados != 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>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( "</td>\n" );
			 message.append( "</tr>\n" );
		 } 
		 message.append( "<tr>\n" );
		 message.append( "<td align=\"center\">&nbsp;</td>\n" );
		 message.append( "</tr>\n" );
		 message.append( "<tr>\n" );
		 message.append( "<td align=\"center\">\n" );
		 message.append( "</td>\n" );
		 message.append( "</tr>\n" );
		 message.append( "</table>\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();
		}
	} 
}

Obrigado!!!

Criado 26 de março de 2007
Respostas 0
Participantes 1