Fehler: OutputStream bereits erhalten

Problem

Wenn Sie versuchen, Ihre JSP-Datei auszuführen, erhalten Sie einen Fehler im error-log Ihrer Instanz, der Folgendem ähnlich ist:

14:55:42 *ERROR* delivery: Unhandled Exception: java.lang.IllegalStateException: OutputStream already obtained java.lang.IllegalStateException: OutputStream already obtained

Lösung

Verwenden Sie Line-Killer und stellen Sie sicher, dass in der Datei keine Leerzeichen oder Zeilenumbrüche enthalten sind. Es folgt die ordnungsgemäße Implementierung der oben gezeigten JSP:

<%@ page import="java.io.*" %><% %><%@ page import="com.day.cq.delivery.DeliveryHttpServletRequest" %><% %><%@ page import="com.day.cq.activation.MimeTab" %><% %><%@ page import="com.day.cq.contentbus.*" %><% %><%@ page import="com.day.util.IO" %><% // Instanziieren Sie ein Communiqué Request Object auf der Basis der impliziten JSP-Anforderung DeliveryHttpServletRequest cqRequest = (DeliveryHttpServletRequest)-Anforderung; // setzen Sie die ContentType-Information der Antwort auf der Basis des request uri extension String mimeType = MimeTab.getContentType(cqRequest.getRequestURI()); response.setContentType(mimeType); // Verwenden Sie die request.getAtom()-Methode, wenn die Selectors das Content Atom definieren Atom atom = (Atom) cqRequest.getAtom(); // Instanziieren Sie das Content Atom und ordnen Sie es einem Java-Stream zu InputStream inputStream = atom.getStream(); IO.spool(inputStream, response.getOutputStream()); // schließen Sie den Eingangsstream inputStream.close(); %>

Hinweis:

Sie können Servlets verwenden, um Bilder anstelle von jsp zu verarbeiten.

Weitere Informationen

Dieses Problem tritt auf, wenn Sie in Ihrem jsp versuchen, den Output-Stream von Antworten zu erhalten, dieser aber bereits erhalten wurde. Es kann eine leere Zeile im JSP-Code vorhanden sein. Hier das Beispiel eines Bild-Spooling, das diesen Fehler hervorruft:

<%@ page import="java.io.*" %> <%@ page import="com.day.cq.delivery.DeliveryHttpServletRequest" %> <%@ page import="com.day.cq.activation.MimeTab" %> <%@ page import="com.day.cq.contentbus.*" %> <%@ page import="com.day.util.IO" %> <% // Instanciate a Communiqué Request Object based on the implicite JSP-request DeliveryHttpServletRequest cqRequest = (DeliveryHttpServletRequest) request; // set the response ContentType information based on the request uri extension String mimeType = MimeTab.getContentType(cqRequest.getRequestURI()); response.setContentType(mimeType); // Using the request.getAtom() method if the Selectors define the Content Atom Atom atom = (Atom) cqRequest.getAtom(); // Instanciate and cast the Content Atom to a Java stream InputStream inputStream = atom.getStream(); IO.spool(inputStream, response.getOutputStream()); // close the input stream inputStream.close(); %>

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online