Spring Boot启用 就像在web.xml中

我对Spring Boot" title="Spring Boot">Spring Boot配置有问题。在某些应使用套接字的移动设备上,我出现了异常:

java.lang.IllegalArgumentException: Async support must be enabled on a servlet and for all filters involved in async request processing. This is done in Java code using the Servlet API or by adding "<async-supported>true</async-supported>" to servlet and filter declarations in web.xml. Also you must use a Servlet 3.0+ container

at org.springframework.util.Assert.isTrue(Assert.java:65)

at org.springframework.http.server.ServletServerHttpAsyncRequestControl.<init>(ServletServerHttpAsyncRequestControl.java:59)

at org.springframework.http.server.ServletServerHttpRequest.getAsyncRequestControl(ServletServerHttpRequest.java:202)

at org.springframework.web.socket.sockjs.transport.session.AbstractHttpSockJsSession.handleInitialRequest(AbstractHttpSockJsSession.java:202)

at org.springframework.web.socket.sockjs.transport.handler.AbstractHttpSendingTransportHandler.handleRequestInternal(AbstractHttpSendingTransportHandler.java:66)

at org.springframework.web.socket.sockjs.transport.handler.AbstractHttpSendingTransportHandler.handleRequest(AbstractHttpSendingTransportHandler.java:58)

at org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService.handleTransportRequest(TransportHandlingSockJsService.java:254)

at org.springframework.web.socket.sockjs.support.AbstractSockJsService.handleRequest(AbstractSockJsService.java:322)

at org.springframework.web.socket.sockjs.support.SockJsHttpRequestHandler.handleRequest(SockJsHttpRequestHandler.java:88)

at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

...

从异常中可以看出,我必须通过将true添加到web.xml文件中来启用异步处理。但这是问题,因为我没有它-我们的项目使用Spring Boot。

有什么办法可以像在Spring Boot中提供相同的功能吗?

回答:

您只需要定义dispatcherServlet@Bean

@Bean

public ServletRegistrationBean dispatcherServlet() {

ServletRegistrationBean registration = new ServletRegistrationBean(

new DispatcherServlet(), "/");

registration.setAsyncSupported(true);

return registration;

}

它会覆盖的默认值DispatcherServletAutoConfiguration

以上是 Spring Boot启用 就像在web.xml中 的全部内容, 来源链接: utcz.com/qa/422404.html

回到顶部