我正在开发一个支持异步操作的servlet。 该servlet将通过多个过滤器进行调用。一些过滤器是通过DelegatingFilterProxy创建的FilterProxyChain的一部分。如何为通过Spring DelegatingFilterProxy链调用的过滤器设置异步支持标志?
如果我们必须从一个servlet启动一个异步上下文,那么过滤器链应该也支持异步操作。否则下面的例外获取引发 -
28-JUL-2017 09:41:51.196严重[HTTP-NIO-127.0.0.1-7441-EXEC-2] org.apache.catalina.core.StandardWrapperValve.invoke的Servlet .service()用于与path []上下文中的servlet [eventBus]抛出异常 java.lang.IllegalStateException:当前链的过滤器或servlet不支持异步操作。 在org.apache.catalina.connector.Request.startAsync(Request.java:1630) 在org.apache.catalina.connector.Request.startAsync(Request.java:1623) 在org.apache.catalina.connector。 RequestFacade.startAsync(RequestFacade.java:1030) 在javax.servlet.ServletRequestWrapper.startAsync(ServletRequestWrapper.java:379) 在javax.servlet.ServletRequestWrapper.startAsync(ServletRequestWrapper.java:379) 在org.springframework.security。 web.servletapi.HttpServlet3RequestFactory $ Servlet3SecurityContextHolderAwareRequestWrapper.startAsync(HttpServlet3RequestFactory.java:167) 在com.amdocs.vshield.vsm.asyncrest.VsmAsyncRestController.doGet(VsmAsyncRestController.java:89) 在javax.servlet.http.HttpServlet.service( HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain。 doFilter(ApplicationFilterChain.java:207)
一些通过DelegatingFilterProxy调用的过滤器没有明确地在web.xml中配置。 那么如何让这些过滤器支持异步?
它不工作。尽管如此,它仍然会失败,同样的例外我们如何配置过滤器来支持通过DelegatingProxyFilter调用的异步请求? –