Hi,
das bedeutet, dass Du versuchst, den OutputStream zu "fetchen", nachdem er - direkt oder indirekt - benutzt wurde.
Wenn Du Dir die entsprechenden Quellcode-Dateien im tomcat/work/DeinContext-Verzeichnis analysierst, siehst Du das auch:
"JspWriter out = null;"
und
"pageContext = _jspxFactory.getPageContext(this, request, *response*, ....);"
"out = pageContext.getOut();" // hierdurch wird über "10 Ecken", u.a. durch Erzeugung eines JSPWriters-Objekts "response.getWriter()" aufgerufen -> somit ist die Bedingung für das Werfen der IllegalStateException erfüllt!
Dies geschieht (zumindest mit Tomcat) also automatisch, wenn Du JSPs verwendest.
Als Workaround fällt mir auf Anhieb ein (ungetestet):
1.
<%@ page contentType="DeinMimeTyp" %>
<% response.sendRedirect("DeineURL/DeinContext/DeinFileName"); %>
Dazu muss sich die Datei im Pfad des entsprechenden Web-Kontextes befinden (wenn Context-Switching erlaubt ist, sollte auch ein anderer funktionieren).
2. Verlagere diese Funktionalität komplett in ein Servlet. Hier kannst Du mit "response.getOutputStream()" problemlos arbeiten.
Viel Grüße,
Martin