[Ajuda] Problema com a exceção IllegalStateException

Boa tarde a todos.

Bom, estou desenvolvendo uma aplicação que gera um arquivo excel, e faço download desse arquivo.

Otimo, tudo isso esta funcionando, porem quando baixo o arquivo ocorre uma exceção…

Exceção:

java.lang.IllegalStateException: getOutputStream() has already been called for this response
	at org.apache.catalina.connector.Response.getWriter(Response.java:599)
	at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
	at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
	at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:182)
	at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
	at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
	at org.apache.jsp.downloadMapaAlocacao_jsp._jspService(downloadMapaAlocacao_jsp.java:106)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:568)

A forma que faço isso é da seguinte forma:
Existe um JSP que tem um botão para gerar o excel, clicando nesse botão é chamado uma outra JSP que possui a chamada para o metodo que gera o excel (framework POI).
Todo o codigo está implementado no JSP, nao uso nenhum framework web.
Segue o codigo do JSP que monta o excel e executa o download.

JSP:

<%@page import="br.com.eversystems.painel.util.ConstantesPainel" %>
<%@page import="java.io.ByteArrayOutputStream" %>
<%@page import="java.util.List" %>
<%@page import="org.apache.poi.hssf.usermodel.HSSFSheet" %>
<%@page import="org.apache.poi.hssf.usermodel.HSSFWorkbook" %>
<%@page import="br.com.eversystems.painel.util.GerarExcel" %>

<%
GerarExcel gerarExcel = new GerarExcel();

// declara stream onde será gravado o xls
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//ServletOutputStream outputStream = new ServletOutputStream();

// cria um novo documento
HSSFWorkbook workbook = new HSSFWorkbook();

// cria uma planilha
HSSFSheet sheet = workbook.createSheet("Mapa Alocacao");
				
// cria o header da planilha
gerarExcel.createHeaderMapaAlocacao(sheet, workbook, (List)request.getSession().getAttribute(ConstantesPainel.PAINEL_ALOCACAO_LISTA_MES));
		
// popula a planilha
gerarExcel.createDataMapaAlocacao(sheet, workbook, (List)request.getSession().getAttribute(ConstantesPainel.PAINEL_ALOCACAO_LISTA_ALOCACAO), (List)request.getSession().getAttribute(ConstantesPainel.PAINEL_ALOCACAO_LISTA_MES));
		
// ajusta planilha
gerarExcel.adjustSheet(sheet, workbook, 11, 10);

// escreve o documento no stream
workbook.write(outputStream);

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition","attachment;filename=MapaAlocacao.xls");
response.setContentLength((int)outputStream.toByteArray().length);
ServletOutputStream output = response.getOutputStream();  
outputStream.writeTo(output);
output.flush();
output.close();
%>

Ja pesquisei bastante, fiz alguns testes mas ainda continua dando esse erro.

Alguem poderia me dar alguma luz? heheh

Obrigado desde ja.