Tomcat 升级后 Servlet 404/实例化失败 ClassNotFoundException 解决记录

介绍

升级Tomcat 9至Tomcat 10时候报错。
创建项目时已选择Servlet服务,使用IDEA运行Servlet程序,编译通过。但是访问对应Servlet页面返回404,Tomcat报错,而使用JSP的页面正常。

测试环境

开发工具: Intellij IDEA Ultimate 2021.1
Tomcat: 10.0.5
Java 8

原因

因为 Tomcat 10 更换为了 Jakarta,IDEA在创建项目时现在需要选择顶部的 Version 为 Jakarta EE 9 而非 Java EE 8,

| Applications that run on Tomcat 9 and earlier will not run on Tomcat 10 without changes. Java EE based applications designed for Tomcat 9 and earlier may be placed in the $CATALINA_BASE/webapps-javaee directory and Tomcat will automatically convert them to Jakarta EE and copy them to the webapps directory.

并需要修改代码中所有旧的 import 为使用 Jakarta 的包。

新项目的注意

IDEA在创建项目时现在需要选择顶部的 Version 为 Jakarta EE 9 而非 Java EE 8。

IDEA

碎碎念

JSP 已经被淘汰了,不要再写这种东西,除非你是被迫的。


Tomcat 升级后 Servlet 404/实例化失败 ClassNotFoundException 解决记录
https://swai.top/2021/06/26/Tomcat升级后ClassNotFoundException/
作者
ShallowAi
发布于
2021年6月26日
许可协议