Seleccionar página

O en ingles “getOutputStream() has already been called for this response jsf”.

Este error sucede cuando se escribe en el “out” del “response”. Lo típico es para generar documentos que no son html como pdf,xls,imagenes,…

Ejemplo:

response.setContentType(MIME_PDF);
OutputStream out= response.getOutputStream();

...

out.write(...);

...
out.flush();

Para que no de este error hay que añadir después del ejemplo:

FacesContext.getCurrentInstance().responseComplete();

En la documentación se este método se comenta:

“Señal de la implementación de JSF que le indica que la respuesta para esta petición ya ha sido generada (tal como una redirección HTTP), y que debe terminar el ciclo de vida del procesado de la petición tan pronto como la fase actual sea completada.”