gpt4 book ai didi

Spring Boot 不支持 @WebServlet

转载 作者:IT老高 更新时间:2023-10-28 13:45:00 24 4
gpt4 key购买 nike

我创建了一个 Servlet(从 HttpServlet 扩展)并按照 3.0 规范进行了注释

@WebServlet(name="DelegateServiceExporter", urlPatterns={"/remoting/DelegateService"})

我在 Spring Boot 中的 @Configuration 类扫描这个 servlet 的包。但是,当我的 Spring Boot 应用程序启动时,它并没有记录它已经在嵌入式 Tomcat 8.0.15 容器中部署了这个 servlet。

所以,我也将 @Component 添加到我的 servlet 中。现在,Spring Boot 注册 servlet(向我证明扫描包已正确设置),但随后它使用基于类名的 URL 模式注册它,使用驼峰式大小写。所以,这样更好 - 例如,我注册了一个 servlet,但 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 带注释的 servlet 并尊重它们的 url 映射?

最佳答案

在你的引导类中添加 @ServletComponentScan

比如

@SpringBootApplication
@ServletComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

这将使 spring boot 能够扫描 @WebServlet 以及 @WebListener

关于Spring Boot 不支持 @WebServlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27785935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com