2

我在我的网络应用程序中添加了一个过滤器(它已经支持异步操作),并忘记在过滤器上插入正确的注释以保留异步支持。容易解决的问题。我将以下注释放在过滤器类中,最终看起来像这样:

@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 错误?

4

0 回答 0