Tomcat9版本项目适配Tomcat10版本解决方案

背景介绍

        2021年11月扫描出项目的tomcat存在大量高危漏洞。后经沟通可知,我司提供了tomcat9.0.55版本替换解决方案。经替换后,短暂解决了问题。但在扫描时,仍存在5个高危漏洞。

 CVE-2021-25329

CVE-2021-41079

CVE-2021-30640

CVE-2021-24122

CVE-2021-25122

      经过我们内部商讨后,决定采用升级tomcat10.0.21的方案。随后在替换tomcat10.0.21版本后,发现web段页面进不去,后台启动一直无响应,info和error日志也一直不打印。查看tomcat的catlina.out日志一直报错,并且浏览器控制台一直报404!

定位问题


    查看官网:https://tomcat.apache.org/download-10.cgi后发现,在tomcat10之后,将Java EE的命名空间全部转义到了Jakarta,导致原来打包的war内封装的.class文件全部失效。


 

从官网可知,官方提供了一个“转移工具(migration tool)”,可对其进行转移。点击跳转过去为GitHub链接地址,下载较慢!下载了10几分钟只有5%左右,而且经常断掉。
我们可以从tomcat官网上进行源码下载,并进行编译得到

⦁    下载migration tool源码(https://tomcat.apache.org/download-migration.cgi)


 

 ⦁    本地配置好maven,用于编译源码(当然前提是必须装好java8的编译环境)

⦁    将下载好的migration tool即jakartaee-migration-1.0.0-src.tar.gz解压

 ⦁    进入解压后的目录,使用maven对源码进行编译(mvn verify)

进入target文件夹,找到刚才编译生成的jakartaee-migration-1.0.0-shaded.jar 

 ⦁    对war包进行重新编译,命令为:
java -jar jakartaee-migration-x.x.x-SNAPSHOT-shaded.jar <source> <destination>
其中<source> 填需要迁移的war包的路径,<destination>填生成新war包的路径 
如下所示

 以上即为在tomcat10以上的war包程序适配tomcat10以后版本的解决方案。
将新包替换至现场后解决问题。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值