前几天,在使用IDEA导入一份WAR包时,类文件中代码段
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
.servlet产生错误
通过IDEA的错误分析得知错误发生的原因是无法解析符号‘servlet’
也就是没有找到javax.servlet包
由于本机所用Tomcat是10.0.20版本,WAR包所用版本为Tomcat9之前版本,所以推测是由于Tomcat版本不一致导致的兼容性问题。
通过查阅Tomcat官网发现以下一段话
简单翻译过来就是Tomcat10及以上版本取消了对javax包名的使用,以jakarta代替。
这就解释了为什么会找不到java.servlet这个包,因为库里面压根没这个包的名称路径
回到错误发生的类中,将javax批量替换成jakarta
编译运行无错误,问题解决!