Я работаю над этим приложением Java Sprint 3.0, где я передаю данные в таблицу данных.Все работает нормально, но время от времени я вижу эту ошибку:
ERROR [[dispatcher]] Servlet.service() for servlet dispatcher threw exception
java.lang.IllegalStateException: getOutputStream() has already been called
для этого ответа.
Вот мой код:
@PreAuthorize("hasRole('ADMIN')")
@RequestMapping(value = "/dataTable", method = RequestMethod.GET)
public void serverSide(Model model, HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("application/json");
response.setHeader("Cache-Control", "no-store");
PrintWriter out = response.getWriter();
out.print(dataTableService.viewUsers(request));
}
Я попытался добавить следующее:
out.flush();
out.close();
return;
Я также попытался использовать response.getOutputStream() .print (dataTableService.viewUsers (request)) и response.getWriter (). append (dataTableService.viewUsers (request)) вместо использования PrintWriter но, похоже, ничего не исправить.
РЕДАКТИРОВАТЬ:
Вот трассировка стека: