Tomcat10踩坑体验,不解析.class文件

将SpringBoot项目从Tomcat8.5.64升级到Tomcat10.0.4时遇到服务无法启动的问题,原因是Tomcat10后javaEE命名空间迁移至Jakarta。解决方案是使用jakartaee-migration工具进行二次编译war包,经过编译后的war包可以在Tomcat10下正常启动并访问接口。
摘要由CSDN通过智能技术生成

Tomcat10 踩坑
1.场景描述
原项目是使用springboot2.3.9.RELEASE+ jdk1.8 + Tomcat8.5.64在服务器上以war包方式运行,由于给某银行做项目要求使用tomcat10以上版本,所以需要将Tomcat8升级到Tomcat10;

2.操作步骤
tomcat官网下载到Tomcat10.0.4免安装版,解压之后将程序放在Webapps下启动Tomcat

3.结果呈现
【7456】毫秒之后服务将启动,就一直卡着没反应。但是Tomcat10已经启动,能够访问到tomcat内置的页面
4.验证
验证1:可访问到tomcat首页
验证2:将静态文件放到Webapps下,可以访问到该静态页面
5.外在表现

发现未成功解析war包,原war接近100M,解析后仅为4096KB,不解析.class文件。
到官网使用中文翻译过来发现一段话

将需要进行二次编译的war包拷贝到和jakartaee-migration-0.2.0.jar同一个目录下(此处不同目录会报密钥什么的错误),然后执行二次编译命令即可编译成功,编译成功的war包扔到webapps目录下可以成功启动。

6.使用方法

1.正常方式打包出**.war包
2.将提前准备好的jakartaee-migration-0.2.0.jar与war放在同一目录下
3.二次打包需要使用到:jakartaee-migration-1.0.0-shaded.jar,将cs.war和xxx.jar。存放在同一目录下,使用时进入到当前目录的dos命令下,使用java -jar jakartaee-migration-1.0.0-shaded.jar cs.war cs1.war,等待打包完成。
4.此时的war包才与原来tomcat10 以下打出的war在形式上一致,此时放到webapps下,启动tomcat10在进行访问,可访问到接口等信息。
7.原因分析
Tomcat10之后将java EE的命名空间全部迁移到jaKarta,导致原本打包的war包内封装的.class文件全部失效,所以才需要使用官方提供的迁移工具进行迁移,估计后续会进行优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发小牛牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值