?getOutputStream() has already been called for this response?

Galera, estou tentando abrir um relatorio feito no jasper e dá esse erro ( ?getOutputStream() has already been called for this response? ).

Tipo, em casa fica tudo de boa, mas quando jogo no servidor, ele dá isso quando clico no botão para exibir o formulario.

Isso so começou a dar quando integrei o UPLOAD do primefaces no meu web.xml.

Pelo que vi ele está chamando esse getOutputStream, no mesmo tempo que o primefaces.

Alguem?

Esse primefaces deve ter algum filtro que chame o método getOutputStream.

Sim sim, com certeza, para configurar o Upload temos que add um filtro. Acho q esse danado ta quebrando tudo xD

Cara essa “zica” acontece por que você deve estar tentando pegar o PrintWriter usando o

PrintWriter writer = response.getWriter();

É depois esta tentando pegar o OutputStream usando

OutputStream out = response.getOutputStream();

Não é possível acessar os dois por que sempre vai te gerar um um de java.lang.IllegalStateException seja ele

java.lang.IllegalStateException: getOutputStream() has already been called for this response // seu erro
// ou
java.lang.IllegalStateException: getWriter() has already been called for this response

fonte: http://docs.oracle.com/javaee/6/api/javax/servlet/ServletResponse.html#getOutputStream()

Já descobri o que era, tipo. O Filtro do Upload do primefaces, chamava o getOutputStream ao mesmo tempo que eu quando tentava abrir meu relatorio.

O que pude fazer foi reescrever minha classe de relatorio para que ele viesse no tipo download.