如何避免请求设置ASYNC_SUPPORTED = true以在Tomcat 7上启用异步servlet 3.0处理?

Jér*_*nge 13 java asynchronous request servlet-3.0 tomcat7

在报告此问题后,找到了一个解决方案:

req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);
Run Code Online (Sandbox Code Playgroud)

这看起来有点奇怪,并不是真正的"便携式"代码(它不会受到伤害,但......).它似乎特定于Tomcat 7.我使用的是NetBeans 7.0.1提供的Tomcat 7.0.14.

我找不到文档,表明有必要在servlet 3.0中使用catalina属性启用异步请求处理.我找不到文档,表明在Tomcat配置级别也需要一些特殊的东西.

有没有办法避免必须ASYNC_SUPPORTED=true在每个请求中设置在Tomcat 7中启用异步servlet 3.0处理?

ksc*_*eid 7

首先要检查几件事:

确保对请求进行操作的任何过滤器也支持异步(如您引用的问题的答案之一中所述).

确保您使用的是Servlet 3.0 web.xml - 例如:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0"
         metadata-complete="true">
Run Code Online (Sandbox Code Playgroud)