IDEA创建web项目,tomcat10运行错误解决方法

2025-11-02 10:32:49

1、选择IDEA的File→New→Project创建项目,

然后选择maven-archetype-webapp骨架工程来创建web项目

IDEA创建web项目,tomcat10运行错误解决方法

IDEA创建web项目,tomcat10运行错误解决方法

2、编写HelloServlet,并配置好web.xml,pom配置文件只留下servlet-api包

IDEA创建web项目,tomcat10运行错误解决方法

1、编译打包,配置好tomcat运行后,访问servlet请求接口,结果出错:

java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

提示是明显没有找到HttpServlet类。

IDEA创建web项目,tomcat10运行错误解决方法

2、这里我们想到之前在pom里面的servlet-api包配置

<dependency>

 <groupId>javax.servlet</groupId>

 <artifactId>javax.servlet-api</artifactId>

 <version>4.0.1</version>

 <scope>provided</scope>

</dependency>

scope我们选择了provided,也就是代表这个包由容器提供,现在容器不提供了。

这里我们选择File→Project Structure→Modules

将里面的maven依赖范围选择compile,重新启动tomcat。

IDEA创建web项目,tomcat10运行错误解决方法

3、访问servlet请求接口,还是出错:

java.lang.ClassCastException: class org.example.HelloServlet cannot be cast to class jakarta.servlet.Servlet (org.example.HelloServlet is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @193b9e97; jakarta.servlet.Servlet is in unnamed module of loader java.net.URLClassLoader @a38d7a3)

这个错误,看上去像是包冲突的错误,

所以这里我们选择File→Project Structure→Modules

将里面的maven包替换成Tomcat的包。

IDEA创建web项目,tomcat10运行错误解决方法

4、此时,你编写的Servlet会出错,你需要重新导入包。

你会发现原本的javax包都变为了jakarta。

import jakarta.servlet.ServletException;

import jakarta.servlet.http.HttpServlet;

import jakarta.servlet.http.HttpServletRequest;

import jakarta.servlet.http.HttpServletResponse;

5、重新启动tomcat,正常访问接口。

IDEA创建web项目,tomcat10运行错误解决方法

1、Tomcat10自带的servlet-ap的jar包,里面的包名进行了变更,导致如果写的代码引用的是javax.servlet.http.HttpServlet类,会访问不到,必须要引用jakarta.servlet.http.HttpServlet包才行。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢