使用Servlet3.0新特性asyncSupported=true时抛异常java.lang.IllegalStateException: Not supported

时间:2021-07-30 03:25:28

最近在运用Servlet3.0新特性:异步处理功能的时候出现以下了2个问题:

运行时会抛出以下两种异常:

一月 19, 2014 3:07:07 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [servletTest.AsyncServlet] in context with path [/idea] threw exception
java.lang.IllegalStateException: Not supported.
一月 19, 2014 2:42:01 下午 org.apache.catalina.core.ApplicationContext log

经过反复排查,终于查出了问题原因,不多说,直接上结论:

1.使用asyncSupported=true必须运用tomcat7+JDK6以上版本。

2.必须在一个请求涉及的所有Servlet及Filter中都声明asyncSupported=true。

简单地说:

我写了一个AsyncServlet.java(extends HttpServlet)中声明了asyncSupported=true,

但是该请求还同时会触发另外3个Filter,所以这3个Filter中也必须声明asyncSupported=true

这就是这个使用asyncSupported这个属性的关键。