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不报错了!

原文地址:https://www.cnblogs.com/yskcoder/p/4564249.html