一:由于Tomcat高危漏洞影响,本文介绍了如何查询和修改Springboot内嵌的Tomcat版本,包括通过POM文件或mvnrepository查询版本,以及通过添加properties配置更改版本。此外,还提到了遇到缺少tomcat-juli依赖时的解决办法。
最近Tomcat爆出高危漏洞,基本影响所有的Tomcat版本,故需要对springboot项目进行版本升级
一般不建议修改springboot内嵌版本,内嵌版本都是经过验证比较稳定的版本
我的依赖树查看项目整体的tomcat版本都是8.5.29
去到项目的根pom文件中,找到parent依赖:
打开这个pom文件,搜索 tomcat.version
可以查看到我们使用的tomcat版本为8.5.29,我们需要对此进行升级
二:我这边采取的方法使用了在我自己的项目的pom里面添加版本,就可以直接覆盖这里的版本了。
然后重新构建下maven项目,在查看项目的依赖树,发现整体的版本已经进行更新了
完美解决!到这里基本就完成了。
但是有时候启动会报错:
Caused by: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.catalina.util.LifecycleBase.<clinit>(LifecycleBase.java:37)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:169)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134)
... 13 common frames omitted
因为这个时候的tocmat缺少jar包,maven项目的话加上下面这个依赖就好了:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
<version>${tomcat.version}</version>
</dependency>
tomcat 9.0 官方说明文档:
萌新也是遇见了这个升级问题,查阅了网上大佬们的资料,在此记录一下,谢谢各位大佬的观看!