Подскажите пожалуйста как запустить другой поток в сервлете что бы в нём выполнить нужные действия? Проблема в том что я делаю определенные действия на которые тратится не малое кол-во времени - скриншот экрана по 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
я поставил.
Как ещё можно запустить поток? Спасибо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В игре несколько цветных шариков появляются каждую секунду и исчезаютИгрок должен выбрать правильную последовательность
Есть готовый десктопный проект на Java, с GUI интерфейсомПроект был разработан в среде Intellij Idea