惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - 糖果的二师兄

记-Docker 服务器时间之ENV环境变量-设置docker容器的时区 mac homebrew国内安装源 解决:Adobe offers you a 5-day grace period to switch to a genuine Adobe app — at a discount — and uninstall unlicensed Adobe apps. ssh登录一些老旧设备,特别是旧版本linux。例如centos5.3之类的 Windows和mac OS共用VMware虚拟机 虚拟机扩容ubuntu22.04磁盘空间到逻辑卷中。 安装openssl 3后error while loading shared libraries: libssl.so.3 WinRAR永久授权专用激活KEY方法(rarreg.key) SAMSUNG SCX4521F (4x21系列) 在MacOS Sonoma下的驱动问题! 2D游戏地图的设计思路 Hackintosh最简单且正确的USB定制方法 汇编指令速查 mysql 数据库 1130 error PD ubantu 安装 Parallels Tools Cinema 4d R25 C4D Mac版本的Arnold 渲染器 crack. 使用Docker通过aliyundriver-webdav挂载阿里云盘作为本地磁盘使用 unity tilemap 缝隙解决 TBC 2.4.3 Mac客户端 去除新冠疫苗接种系统导出的Excel表格数据中的干扰字符。
Tomcat10 报错java.lang.NoClassDefFoundError: javax/servle...
糖果的二师兄 · 2021-08-21 · via 博客园 - 糖果的二师兄

  原来是 Servlet、JSP 与 Spring 的版本之间的匹配出了问题。众所周知,2018 年,Java EE 改名为 Jakarta EE。这导致一些 JAR 包的包名也在之后的版本中进行了更改。这对本项目的影响是,Spring 本身是不含 Servlet、JSP 的 JAR 包的,但其依赖这些 JAR 包。如果在 Tomcat 服务器中部署的项目使用了 Spring,则这部分的 JAR 包将由 Tomcat 服务器来提供。而问题在于,Spring 5.2.9.RELEASE 期望的 JAR 包前缀是 javax,而Tomcat 10.0.0 提供的 JAR 包前缀是 jakarta。因此,Spring 报了一个认为没有 Servlet、JSP 的 JAR 包的错。

  (查看 Tomcat 的各版本对应的 Servlet 等的版本的网址是:http://tomcat.apache.org/whichversion.html)

  由于 Tomcat 与 Servlet、JSP 的 JAR 包关系密切,因此无法通过替换 Tomcat 下的文件夹 lib 中 Servlet、JSP 的 JAR 包来解决。而且这也无法通过在 Maven 中添加正确的 Servlet、JSP 依赖来解决,实际上,如果该工程的纯 Java 代码的部分没有使用到 Servlet、JSP 的 JAR 包,其实这里在 Maven 添加的 Servlet、JSP 依赖都可以删掉。(更专业的说法是,在基于 Maven 的 Web 应用中,对 Servlet、JSP 的依赖范围为 provided。)

  幸运的是,Tomcat 9.0.41 使用的 JAR 包前缀是 javax 。因此,这里只需要再安装一个Tomcat 9.0.41 即可解决(不需要卸载已有的 Tomcat,因为不同版本的 Tomcat 的安装路径可以不同,只是安装时需要先关闭已有的 Tomcat 服务器,避免占用同一个端口号)。