SpringBoot项目找不到javax.servlet.Filter的问题及解决

作者:eknown 时间:2022-03-13 10:49:18 

SpringBoot找不到javax.servlet.Filter的问题

新创建一个SpringBoot项目,编译时出现了找不到javax.servlet.Filter的异常。

SpringBoot项目找不到javax.servlet.Filter的问题及解决

这个类位于tomcat-embed这个jar下面,这里的解决方法并不是像网上大部分所说的手动添加这个jar,因为这是由于没有添加spring-boot-starter-web依赖造成的。

springboot项目默认会添加spring-boot-starter和spring-boot-starter-test两个依赖,而web项目需要spring-boot-starter-web依赖。

下面对比一下spring-boot-starter和spring-boot-starter-web这两个依赖的区别:

spring-boot-starter-web:

SpringBoot项目找不到javax.servlet.Filter的问题及解决

spring-boot-starter,没有web:

SpringBoot项目找不到javax.servlet.Filter的问题及解决

所以在maven里添加下面这个依赖即可:

<dependencies>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
</dependencies>

启动SpringBoot项目找不到报错

java.lang.ClassNotFoundException: javax.servlet.Filter

出现该问题是因为缺少javax.servlet.Filter的Tomcat-embed-core-xxx.jar包;我们通常使用 spring-boot-starter-web 注入即可。

SpringBoot项目找不到javax.servlet.Filter的问题及解决

但是我检查了maven本地仓库中已经有,且项目依赖maven中也存在该包;pom文件也注入了spring-boot-starter-web;编译也通过不报错。但是就是项目启动报错。

经过一番折腾,我仔细对比了pom文件的配置项内容,发现有细小差异;

这是我配置的(有问题的)

<dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-tomcat</artifactId>
           <scope>provided</scope>
</dependency>

正确的配置(在远程maven仓库中搜索的配置)

<dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-tomcat</artifactId>
           <version>2.3.1.RELEASE</version>
</dependency>

SpringBoot项目找不到javax.servlet.Filter的问题及解决

经过对比,发现 <scope>provided</scope> 是导致报错的根源;所以直接删除这个属性;添加版本号属性,重启错误得到解决。

来源:https://eknown.blog.csdn.net/article/details/102789716

标签:SpringBoot,javax,servlet,Filter
0
投稿

猜你喜欢

  • Java设计模式之装饰模式详解

    2022-09-27 05:55:32
  • WPF自动隐藏的消息框的实例代码

    2023-09-11 09:52:36
  • SpringBoot之Json的序列化和反序列化问题

    2021-11-12 07:17:29
  • 不规范使用ThreadLocal导致bug分析解决

    2023-11-24 20:03:59
  • C#对Json进行序列化和反序列化

    2023-04-16 09:06:15
  • 基于Mock测试Spring MVC接口过程解析

    2023-11-27 12:04:30
  • java File类的基本使用方法总结

    2022-05-10 15:15:36
  • Jmeter分布式压力测试实现过程详解

    2022-03-23 21:32:44
  • java读取解析xml文件实例

    2023-01-04 05:52:40
  • Java SSM配置文件案例详解

    2022-10-14 09:43:19
  • 使用C#发送Http请求实现模拟登陆实例

    2023-06-22 22:25:07
  • Javaweb动态开发最重要的Servlet详解

    2023-04-09 20:11:17
  • java显示当前运行时的参数(java运行参数)

    2023-09-07 10:03:22
  • Java循环队列原理与用法详解

    2023-11-13 20:05:36
  • Java实战之实现一个好用的MybatisPlus代码生成器

    2023-06-18 02:16:10
  • Spring boot中@Conditional和spring boot的自动配置实例详解

    2023-06-20 09:36:14
  • Android屏蔽软键盘并且显示光标的实例详解

    2023-01-16 16:54:20
  • Java Web开发之基于Session的购物商店实现方法

    2023-06-09 20:46:35
  • java 如何判断是否是26个英文字母

    2023-11-29 15:51:59
  • Java花式解决'分割回文串 ii'问题详解

    2022-07-09 02:01:58
  • asp之家 软件编程 m.aspxhome.com