Frühjahr: getOutputStream() bereits aufgerufen wurde für diese Antwort

Ich weiß, dass es viele andere Beiträge den Umgang mit die gleiche Fehlermeldung, aber alle von Ihnen sind entweder über JSP /GSP-Seiten oder aus irgendeinem anderen Grund nicht sehr hilfreich in meinem Fall. Ich bin mit Spring MVC mit Thymeleaf. Die folgende Funktion ist für das herunterladen der Datei.

@RequestMapping(value = "/test/download/*", method = RequestMethod.GET)
public String getFile(HttpServletResponse response)
{

    ServletOutputStream stream = null;
    try
    {
        stream = response.getOutputStream();

        MultipartFile f = test.getFile();

        InputStream is = f.getInputStream();
        IOUtils.copy(is, stream);
        response.flushBuffer();

        stream.flush();
        stream.close();

    } catch(Exception ex)
    {

    }

    return "test";

}

Es funktioniert tatsächlich, so dass es nicht zu viel von einem problem, aber in der Konsole, ich bin immer die folgende Fehlermeldung:

2014-01-10T09:28:09.053+0100  SEVERE  Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception  [Request processing failed; nested exception is java.lang.IllegalStateException: getOutputStream() has already been called for this response] with root cause
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:638)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:214)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105)
at org.springframework.security.web.context.SaveContextOnUpdateOrErrorResponseWrapper.getWriter(SaveContextOnUpdateOrErrorResponseWrapper.java:125)
at org.thymeleaf.spring3.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
at org.thymeleaf.spring3.view.ThymeleafView.render(ThymeleafView.java:190)
[...]

Soweit ich sehe, getOutputStream() wird nur einmal aufgerufen. Auch, die ganze Funktion ist umgeben mit einem try-catch-block. Also ich würde gerne wissen, wo kommt dieser Fehler her?

  • f = test.getFile() Was ist test?
InformationsquelleAutor vauge | 2014-01-10
Schreibe einen Kommentar