Подскажите пожалуйста как запустить другой поток в сервлете что бы в нём выполнить нужные действия? Проблема в том что я делаю определенные действия на которые тратится не малое кол-во времени - скриншот экрана по url. Делаю я это AJAX запросом и проблема в том что пока это функция не отработает мне ответ не придёт. Хотелось бы что бы ответ приходил быстро. Иначе как другой поток я не знаю как сделать. Гуглил, нашел такой пример:
@WebServlet("/foo" asyncSupported=true)
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) {
...
AsyncContext aCtx = request.startAsync(req, res);
ScheduledThreadPoolExecutor executor = new ThreadPoolExecutor(10);
executor.execute(new AsyncWebService(aCtx));
}
}
public class AsyncWebService implements Runnable {
AsyncContext ctx;
public AsyncWebService(AsyncContext ctx) {
this.ctx = ctx;
}
public void run() {
// Invoke web service and save result in request attribute
// Dispatch the request to render the result to a JSP.
ctx.dispatch("/render.jsp");
}
}
Но у меня не работает пишет ошибку:
A filter or servlet of the current chain does not support asynchronous operations
Хотя asyncSupported=true я поставил.
Как ещё можно запустить поток? Спасибо.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости