Создание сеанса после отправки ответа клиенту - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь выполнить метод (который занимает много времени для выполнения) сразу после отправки ответа от контроллера, не заставляя клиента ждать ответа.

Мой исходный код для отправки ответа имеет видследует,

@RequestMapping(value = "exportExcelReportService", method = RequestMethod.POST)
@ResponseStatus(value = HttpStatus.OK)
public void exportExcelReportServiceGetJsonObject(@ModelAttribute ReqParam reqParam, HttpServletResponse response) {
    java.io.PrintWriter wr;
    try {
        wr = response.getWriter();

    response.setStatus(HttpServletResponse.SC_OK);
    wr.print(response);
    wr.flush();
    wr.close();
    exportDataUsingVMService.getByteArrayForExcelSheet(reqParam);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Здесь getByteArrayForExcelSheet будет выполняться после того, как ответ будет отправлен клиенту.Но я не могу создать сеанс в этом методе,

public void getByteArrayForExcelSheet(ReqParam reqParam) {

        JSONObject jObject = null;

        HttpSession httpsession = request.getSession(false);

}

Когда запрос автоматически подключается так:

@Autowired
private HttpServletRequest request;

Я получаю исключение в getByteArrayForExcelSheet, например,

java.lang.IllegalStateException: Cannot create a session after the response has been committed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...