A filter or servlet of the current chain does not support asynchronous operations. 错误解决记录

做视频文件上传一直报这个错误:

java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations.

 

后来在网上查了原因分析如下:主要是 为servlet或者filter设置启用异步支持:<async-supported>true</async-supported>

1、

如果使用web.xml设置过滤器,则可以设置<async-supported>标签为true:

<filter>    

    <filter-name>AsyncFilter</filter-name>

    <filter-class>cc.openhome.AsyncFilter</filter-class>   

    <async-supported>true</async-supported>

</filter>

 

2、

使用@WebServlet来标注,则可以设置其asyncSupported为true。

例如: @WebServlet(urlPatterns = "/some.do", asyncSupported = true)

若其前端有过滤器,则过滤器亦需标示其支持异步处理,如果使用@WebFilter,同样可以设置其asyncSupported为true。

例如: @WebFilter(urlPatterns = "/some.do", asyncSupported = true) public class AsyncFilter implements Filter{ ...

 

总结了方法进行检查,有一个编码的过滤一直被我忽略了 <filter-name>encodingFilter</filter-name>对其也设置了<async-supported>true</async-supported> 。

重启问题,ok不报错了!

posted @ 2015-06-09 18:16  yao小呵  阅读(2885)  评论(0编辑  收藏  举报