Весной MVC Я пытаюсь отправить клиенту ответ на загрузку zip-файла, но Мой код выдает здесь исключение. исходный код ниже:
import java.util.zip.ZipOutputStream;
@RequestMapping(value="api/saf", method = RequestMethod.GET, produces="application/zip")
public String getsod(HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("Content-Disposition","attachment; filename="a.zip");
ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream());
.
Omitted
.
return ""
}
}
, но здесь будет выдано исключение:
2020-04-16 16:43:55,405 ERROR Controller: java.lang.IllegalStateException: getWriter() has already been called for this response
at org.apache.catalina.connector.Response.getOutputStream(Response.java:548)
at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:210)
at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:105)
at csv.getsod(csv.java:11)
csv. java: 11 - это просто код ниже:
ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream());
и мой код запускается в Tomcat 9.0.33. Может ли кто-нибудь дать подсказку об этом исключении? спасибо.
ps: я считаю, что эта ошибка не из-за ошибки в коде. Это может быть потому, что я использую IDE в режиме отладки. Спасибо всем.