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
投稿

猜你喜欢

  • C++多重继承二义性原理实例解析

    2021-10-08 20:18:33
  • Java 判断字符串中是否包含中文的实例详解

    2023-11-06 13:17:18
  • 详解Spring/Spring boot异步任务编程WebAsyncTask

    2022-12-18 00:40:23
  • Mybatis拦 截 器实现数据权限的示例代码

    2023-11-19 20:15:04
  • Spring Boot mybatis-config 和 log4j 输出sql 日志的方式

    2021-05-31 22:13:20
  • java实现图片角度旋转并获得图片信息

    2022-03-25 10:45:00
  • C#中DateTime日期类型格式化显示方法汇总

    2021-07-20 15:52:30
  • Unity3D实现物体旋转缩放移动效果

    2023-07-17 22:11:58
  • Android串口通信apk源码详解(附完整源码)

    2021-06-07 04:39:05
  • c#如何使用 XML 文档功能

    2023-12-25 03:44:33
  • Android studio设置文件头定制代码注释的方法

    2021-07-23 16:52:41
  • MyBatis动态sql查询及多参数查询方式

    2023-05-30 12:20:12
  • C#中系统时间和UNIX时间戳互相转换

    2021-06-02 01:13:58
  • C++实现接两个链表实例代码

    2023-05-04 01:27:02
  • java如何从不规则的字符串中截取出日期

    2022-05-28 02:33:58
  • Java关键字this与super详解用法

    2023-05-28 05:28:04
  • C#通过正则表达式实现提取网页中的图片

    2022-03-30 05:03:03
  • Java设计模式之模版方法模式简介

    2023-07-16 14:58:32
  • Java Swing编写一个简单的计算器软件

    2023-08-12 06:24:04
  • Java 按行读取文件按行写入文件并以空格分割字符串的方法

    2023-08-31 12:32:21
  • asp之家 软件编程 m.aspxhome.com