Jér*_*nge 13 java asynchronous process request servlet-3.0
我创建了一个servlet 3.0来探索异步请求处理:
@WebServlet(name="MyTest", urlPatterns={"/MyTest"}, asyncSupported=true)
public class MyTest extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
AsyncContext tmp = req.startAsync(req, res);
...
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到的IllegalStateException时候.startAsync(...)被调用.我知道Javadoc提到了异常,但我明确地启用了异步(cf WebServletannotation).我正在使用随NetBeans提供的Tomcat 7.0.11.0.
我可以确认这req.isAsyncSupported()是假的.我究竟做错了什么?我还需要做些什么来启用异步处理?
编辑:
我试图实现以下示例并得到相同的问题.
Eft*_*mis 29
我检查了Tomcat的代码,发现asyncSupported变量必须显式设置为true.这就是你得到的原因req.isAsyncSupported() == false.
您可以尝试通过以下方法之一将HttpServletRequest对象中的async属性设置为true.
req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);
Run Code Online (Sandbox Code Playgroud)
要么
((org.apache.catalina.connector.Request)req).setAsyncSupported(true);
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
8542 次 |
| 最近记录: |