SpringBoot中,嵌入环境中的Tomcat忽略ServletContainerInitializer

按照@philwebb说法,嵌入式环境下,SpringBoot有意忽略javax.servlet.ServletContainerInitializer,原因:

The search algorithm used by the containers was problematic. It also causes problems when you want to develop an executable WAR as you often want a javax.servlet.ServletContainerInitializer for the WAR that is not executed when you run java -jar.

解决方案:

1. 注册org.springframework.boot.context.embedded.ServletContextInitializer类型的Bean代替ServletContainerInitializer。

2. 直接向容器注册Servlet和Filter。

3. 向容器注册ServletRegistrationBean和FilterRegistrationBean。

参考:

[1]https://github.com/spring-projects/spring-boot/issues/321

[2]https://github.com/spring-projects/spring-boot/issues/522

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

springboot部署到tomcat

把springboot项目按照平常的web项目一样发布到tomcat容器下多点经验:1.保证运行环境的jdk和开发环境一致,不然class文件无法被编译2.保证tomcat和java的版本匹配,不然tomcat无法启动3.集群一般会进行ip和域名的映射,如果tomcat服务器不在集群内,需要在所在服务器进行

SpringBoot中,嵌入环境中的Tomcat忽略ServletContainerInitializer

按照@philwebb说法,嵌入式环境下,SpringBoot有意忽略javax.servlet.ServletContainerInitializer,原因:Thesearchalgorithmusedbythecontainerswasproblematic.Italsocausesproblemswhenyouwa

Spring Boot 实践

\一、SpringBoot重要特性1.独立的Spring应用程序,嵌入式Tomcat/Jetty容器,无需部署War包2.尽可能使用自动化配置,SpringAutoConfiguration3.提供一批'starter'POM简化Maven及Gradle配置4.提供一系列可以用到生产环境的应用度量、健康检查等特性(Act

SpringBoot内嵌Tomcat开启APR模式(运行环境为Centos7)

网上查到的一些springboot内嵌的tomcat开启apr的文章,好像使用的springboot版本较老,在SpringBoot2.0.4.RELEASE中已经行不通了。自己整理了一下,供参考。运行环境:Centos7,JDK1.81.pom.xml代码如下:<projectxmlns"http://maven.apache