[SPRING] Spring 부트는 web.xml과 같이 <async-supported> 사용 가능
SPRINGSpring 부트는 web.xml과 같이 사용 가능
스프링 부트 구성에 문제가 있습니다. 소켓을 사용해야하는 일부 모바일 장치에서 예외가 발생했습니다.
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)
...
예외에서 알 수 있듯이 web.xml 파일에 true를 추가하여 비동기 처리를 활성화해야합니다. 그러나 이것이 문제가되는 이유는 프로젝트가 Spring Boot를 사용하기 때문입니다.
Spring Boot에서 같은 기능을 제공 할 수있는 방법이 있습니까?
해결법
-
==============================
1.당신은 dispatcherServlet @Bean을 정의 할 필요가 있습니다 :
당신은 dispatcherServlet @Bean을 정의 할 필요가 있습니다 :
@Bean public ServletRegistrationBean dispatcherServlet() { ServletRegistrationBean registration = new ServletRegistrationBean( new DispatcherServlet(), "/"); registration.setAsyncSupported(true); return registration; }
DispatcherServletAutoConfiguration의 기본값을 겹쳐 씁니다.
-
==============================
2.아마도 Spring Boot가 dispatcher 서블릿과 모든 필터에 기본적으로 활성화 된 비동기 지원을 가지고 있음을 언급 할 필요가 있습니다.
아마도 Spring Boot가 dispatcher 서블릿과 모든 필터에 기본적으로 활성화 된 비동기 지원을 가지고 있음을 언급 할 필요가 있습니다.
github에서 인용 :
적어도 나의 연습은이 진술을지지한다.
from https://stackoverflow.com/questions/26213050/spring-boot-enable-async-supported-like-in-web-xml by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 보안 - 메소드 보안 주석을 어떻게 사용할 수 있습니까? (0) | 2019.03.31 |
---|---|
[SPRING] 스프링 부트로 JSON 및 HTML 용 컨트롤러 (0) | 2019.03.31 |
[SPRING] 여러 스키마의 엔티티에 대한 Liquibase-hibernate 변경 로그 생성 (0) | 2019.03.31 |
[SPRING] Spring 애플리케이션에서 요청, 세션, 애플리케이션 범위를 사용해야하는 경우 (0) | 2019.03.31 |
[SPRING] Jspx 파일 및 조건부 주석 (0) | 2019.03.31 |