首页 > 代码库 > The request associated with the AsyncContext has already completed processing
The request associated with the AsyncContext has already completed processing
Some time ago there was a problem with the servlet3.0, is in servlet in asynchronous processing data, due to time outs, dry method terminates, but the back throws, anomalies are as follows:
java.lang.IllegalStateException: The request associated with the AsyncContext has already completed processing. at org.apache.catalina.core.AsyncContextImpl.check(AsyncContextImpl.java:521) at org.apache.catalina.core.AsyncContextImpl.getResponse(AsyncContextImpl.java:245)
Appeared and the reason for this is because asynchronous processing time servlet the default is 10 seconds, apparently because the data is too large, resulting in time out.
The solution is simple only in the doPost method of servlet add a sentence
asyncContext.setTimeout(900000000);
For asynchronous loading manual setting the timeout can be, all the code as follows:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType(getServletContext().getInitParameter("content")); //In asynchronous mode, call the business processing threads to process business //Servlet will not be blocked, but directly to the execution //Business processing after the completion of the response by the AsyncContext management AsyncContext asyncContext = request.startAsync(); asyncContext.setTimeout(900000000); ProductHandleThread productHandleThread = new ProductHandleThread(asyncContext,request.getSession()); asyncContext.start(productHandleThread); }
The request associated with the AsyncContext has already completed processing
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。