Java.lang.IllegalStateException - URGENTE!

Amigos do GUJ, preciso saber o que está acontecendo com minha servlet ! Ela gera o seguinte erro:

java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:368)
at org.apache.catalina.core.ApplicationDispatcher.access$000(ApplicationDispatcher.java:116)
at org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward.run(ApplicationDispatcher.java:131)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:348)
at realsericard.Cadastro.service(Cadastro.java:162)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)

e meu código fonte é o seguinte:

package realsericard;

import javax.servlet.*;
import javax.servlet.http.*;

import java.sql.*;
import java.io.*;
import java.util.*;

import javax.mail.*;
import javax.mail.internet.*;

import realsericard.Conexao;

public class Cadastro extends HttpServlet
{
  public void init() throws ServletException
  {  }

    private boolean Consulta(Connection con,String cnpj)
   {
      boolean retorno = false;
      try
      {
        ResultSet rs = null;
        PreparedStatement pst = null;

      pst = con.prepareStatement(CONSULTA);
      pst.setString(1,cnpj);
      rs = pst.executeQuery();

      if(rs.next())
      {
        retorno = true;
      }else
        retorno = false;
    }catch(Exception e)
     {
       e.printStackTrace(System.out);
     }
     return retorno;
  }
  public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  {
    HttpSession sessao = request.getSession(true);
    RequestDispatcher disp = null;

    String responsavel = request.getParameter("responsavel");
    String cpf = request.getParameter("cpf");
    String razao = request.getParameter("razao_social");
    String cnpj = request.getParameter("cnpj");
    String endereco = request.getParameter("endereco");
    String cidade = request.getParameter("cidade");
    String uf = request.getParameter("uf");
    String cep = request.getParameter("cep");
    String telefone = request.getParameter("fone");
    String email = request.getParameter("email");
    String publicidade = request.getParameter("publicidade");
    String senha = request.getParameter("senha");

    if(responsavel.equals("") || cpf.equals("") || razao.equals("") ||
       cnpj.equals("") || endereco.equals("") || cidade.equals("") ||
       uf.equals("") || cep.equals("") || telefone.equals("") ||
       email.equals("") || publicidade.equals("") || senha.equals(""))
    {
      //dados obrigatórios não preenchidos
      sessao.setAttribute("mensagem","Campos obrigatórios não preenchidos.");
      disp = getServletContext().getRequestDispatcher("/jsp/cadastro.jsp");
      disp.forward(request,response);
    }

    senha = senha.toLowerCase();

    Connection con = null;
    PreparedStatement pst = null;
    ResultSet rs = null;

    Conexao conexao = new Conexao();
    try
    {
      con = conexao.Conecta();

      // verifica se a empresa  já foi cadastrada
      if(Consulta(con,cnpj))
      {
        //empresa ja foi cadastrada
        sessao.setAttribute("mensagem","ERRO: Empresa/CNPJ já foi cadastrada anteriormente !");
        disp = getServletContext().getRequestDispatcher("/jsp/cadastro.jsp");
        disp.forward(request,response);
      }else
      {
        pst = con.prepareStatement(INSERE);
        pst.setString(1,responsavel);
        pst.setString(2,cpf);
        pst.setString(3,razao);
        pst.setString(4,cnpj);
        pst.setString(5,endereco);
        pst.setString(6,cidade);
        pst.setString(7,uf);
        pst.setString(8,cep);
        pst.setString(9,telefone);
        pst.setString(10,email);
        pst.setString(11,publicidade);
        pst.setString(12,senha);

        String arrayEmail[]={responsavel,cpf,razao,cnpj,endereco,cidade,uf,cep,telefone,email,publicidade,senha};

        pst.executeUpdate();

        pst = con.prepareStatement(LOGIN);
        pst.setString(1,responsavel);
        pst.setString(2,email);
        pst.setString(3,senha);

        pst.executeUpdate();

        //empresa foi cadastrada
        sessao.setAttribute("email",email);
        disp = getServletContext().getRequestDispatcher("/jsp/mensagem.jsp");
        disp.forward(request,response);
      }
      pst.close();
      con.close();
    }catch(Exception exception)
     {
       exception.printStackTrace(System.out);
       sessao.setAttribute("exception",exception);
       disp = getServletContext().getRequestDispatcher("/jsp/erro.jsp");
       disp.forward(request,response); //LINHA ONDE DA O ERRO !!
     }

     sessao.invalidate();
  }
  private static final String INSERE = "INSERT INTO cadsimples("+
  "responsavel,cpf,razao_social,cnpj,endereco,cidade,uf,cep,telefone,email,publicidade,senha,habilitado) "+
  "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,'não')";

  private static final String LOGIN = "INSERT INTO LOGIN"+
  "(RESPONSAVEL,EMAIL,SENHA) VALUES (?,?,?)";

  private static final String CONSULTA = "SELECT CNPJ FROM CADSIMPLES "+
  "WHERE CNPJ = ?";
}

Coloque return; apos os forwards, acho que vai resolver o seu problema