我在我的web-app(已经支持异步操作)中添加了一个过滤器,并且忘记在过滤器上插入适当的注释以保留异步支持。容易解决的问题。我在筛选器类中添加了以下注释,最终看起来像这样:
@WebFilter(asyncSupported=true)
public class MainFilter implements Filter
{
...
}
但是,重新部署后,异步操作仍然不受支持,给我这个错误:
请求在过滤器或servlet的范围内 支持异步操作
我能够通过删除注释并将其等效项放在web.xml中来解决问题:
<filter> <filter-name>MainFilter</filter-name> <filter-class>com.MyWebApp.Filters.MainFilter</filter-class> <async-supported>true</async-supported> </filter>
我感到困惑的是容器似乎尊重servlet文件中的asyncSupported注释,但不适用于过滤器。是否有特定原因,或者这是一个GlassFish 3.0错误?