스프링 부트는 @WebServlet을 지원하지 않습니다.
저는 서블릿(Http Servlet에서 확장)을 만들고 3.0 사양에 따라 주석을 달았습니다.
@WebServlet(name="DelegateServiceExporter", urlPatterns={"/remoting/DelegateService"})
나의@Configuration
Spring Boot의 클래스는 이 서블릿의 패키지를 검색합니다.그러나 Spring Boot 응용 프로그램이 시작될 때 내장된 Tomcat 8.0.15 컨테이너에 이 서블릿을 배포한 것으로 기록되지 않습니다.
그래서 제가.@Component
내 서블릿에도.이제 Spring Boot은 서블릿을 등록하지만(스캔 패키지가 올바르게 설정되었음을 증명함) Camel 대소문자를 사용하여 클래스 이름을 기준으로 URL 패턴으로 등록합니다.그래서 그게 더 나았어요. 예를 들어 서블릿을 등록했는데 URL 매핑이 잘못됐어요!
2015-01-05 11:29:08,516 INFO (localhost-startStop-1) [org.springframework.boot.context.embedded.ServletRegistrationBean] Mapping servlet: 'delegateServiceExporterServlet' to [/delegateServiceExporterServlet/]
Spring Boot에서 모든 것을 자동 로드하려면 어떻게 해야 합니까?@WebServlet
주석이 달린 서블릿과 그들의 URL 매핑을 존중합니까?
더하다@ServletComponentScan
당신의 부트스트랩 수업에서.
예를 들어
@SpringBootApplication
@ServletComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
이렇게 하면 스프링 부트가 스캔할 수 있습니다.@WebServlet
게다가@WebListener
.
Spring Boot과 함께 사용해야 합니다.ServletRegistrationBean
객체 대신 객체@WebServlet
서블릿을 등록하고 URL 패턴을 제공하려는 경우 주석을 입력합니다.
이 콩을 당신의 것에@Configuration
수업은 속임수를 써야 합니다.
@Bean
public ServletRegistrationBean delegateServiceExporterServlet() {
return new ServletRegistrationBean(new DelegateServiceExporter(), "/remoting/DelegateService");
}
주석이 달린 서블릿을 로드할 수 있습니다.@WebServlet
스프링 부트에 있는 그들의 매핑.이 작업을 수행하려면 사용해야 합니다.@ServletComponentScan
와 함께@Configuration
주석이 기능은 다음에도 적용됩니다.@WebFilter
그리고.@WebListener
주석
언급URL : https://stackoverflow.com/questions/27785935/spring-boot-does-not-honor-webservlet
'programing' 카테고리의 다른 글
MySql - 데이터 전송 속도가 느림 (0) | 2023.07.22 |
---|---|
사건을 해결하고 반환합니다.및 기본값의 경우 (0) | 2023.07.22 |
PHP 5.4 - 'closure $this support' (0) | 2023.07.22 |
다에서 다로 필드를 직렬화하는 장고레스트 프레임워크 (0) | 2023.07.22 |
장고에서 모든 요청 헤더를 가져오려면 어떻게 해야 합니까? (0) | 2023.07.22 |