升级至tomcat10
官方解决方案
最后再次来到tomcat官网,原来是在tomcat10之后,将Java EE 的命名空间全部迁移到Jakarta,导致原本打包的war包内封装的.class文件全部失效,需要使用官方提供的迁移工具 tomcat-jakartaee-migration 进行迁移。
tomcat官网
实现
克隆迁移工具
这个没什么好说的,直接在git bash里克隆tomcat-jakartaee-migration的仓库。
git clone git@github.com:apache/tomcat-jakartaee-migration.git
安装Maven
按照迁移工具的说明,需要使用Maven对克隆的源码进行构建。我们来到Maven官网,根据自己的os进行下载。
这里以Windows为例,下载 apache-maven-x.x.x-bin.zip ,如果是Linux系统请下载上方的 .tar.gz 文件。下载到的是二进制文件,不需要安装,直接解压到一个目录即可。
为了方便使用,可以设置环境变量。
在系统变量列表中:
增加MAVEN_HOME,值为解压Maven的根目录
在PATH中添加Maven二进制文件的路径,即为%MAVEN_HOME%\bin
设置完成后,确保在终端中输入mvn -v能显示当前maven的版本。
编译迁移工具
来到刚才克隆迁移工具的目录,使用
mvn verify
对源代码进行编译,因第一次启动Maven可能要下载很多依赖,请耐心等待,直到看到编译成功的提示。
使用迁移命令重新生成war包
来到迁移工具目录下的target文件夹,找到刚才编译生成的
jakartaee-migration-x.x.x-SNAPSHOT-shaded.jar,使用
java -jar jakartaee-migration-x.x.x-SNAPSHOT-shaded.jar <source> <destination>
对war包进行重新编译。
其中<source> 填需要迁移的war包的路径,<destination>填生成新war包的路径,如
java -jar .\jakartaee-migration-0.0.2-SNAPSHOT-shaded.jar D:\progress_note_server.war D:\new.war
即可看到使用迁移命令生成了新的war包,现在部署到服务器上,即可恢复业务。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!
2017-12-22 java collection.frequency方法
2014-12-22 Weblogic12C 集群实现session同步
2014-12-22 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. 解决