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

目录
  • SpringBoot找不到javax.servlet.Filter的问题
  • 启动SpringBoot项目找不到报错
    • 这是我配置的(有问题的)
    • 正确的配置(在远程maven仓库中搜索的配置)

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:

spring-boot-starter,没有web:

所以在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 注入即可。

但是我检查了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>

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Servlet连接数据库实现用户登录的实现示例

    目录 一.需求: 二.先复习一下JDBC 1.概述: 2.开发步骤: 三.代码实现: 1.登录界面代码: 2.登录成功界面: 3.servlet代码: 4.数据库数据 5.登录成功页面: 6.登录失败界面: 7.登录界面: 做一个小案例顺便复习一下jdbc的知识 一.需求: 用户在浏览器输入用户名和密码,如果数据库中有数据,提醒用户登录成功,如果没有数据,提醒用户重新登录 二.先复习一下JDBC 今天用的时候有些细节忘了,知识还是需要多次复习啊,并不是说学过就是自己的. 1.概述: 用java程

  • 详解Struts2中Action访问Servlet API的几种方法

    详解Struts2中Action访问Servlet API的几种方法 在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于Action能与JSP页面进行数据交互,所以通常都不会用到这两个对象.如果想在Struts2程序中用到这两个对象,也有解决方法 Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,因为Action类不再与Servlet API耦合,能更轻松的测试该Action.但如何访问? Web应

  • JavaWeb之Servlet注册页面的实现示例

    Servlet-注册页面 环境准备: 本文所用到环境如下: 软件:Eclipse(2018) 服务器:Tomcat 9 在index.jsp添加相关的代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 T

  • SpringBoot详细讲解异步任务如何获取HttpServletRequest

    目录 原因分析 解决方案 前置条件 pom配置 requrest共享 自定义request过滤器 自定义任务执行器 调用示例 原因分析 @Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null 在使用springboot的自定带的线程共享后,代码如下,Request不为null,但是偶发的其中body/head/urlparam内容出现获取不到的情况,是因为异步任务在未执行完毕的情况下,主线程已经返回,拷贝共享的Request对象数据被清空 Servlet

  • 基于Cookie与Session的Servlet API会话管理操作

    目录 ️前面的话️ 1.Cookie与Session 1.1回顾与理解Cookie与Session 1.2Servlet会话管理操作 2.常见案例实现 2.1登录逻辑的实现 2.2上传文件 ️前面的话️ 本篇文章将介绍Servlet中的会话管理操作,前面在介绍HTTP的时候,我们已经说了Cookie与Session的基本原理,Cookie相当于就诊卡,就诊卡一刷得到的信息就相当于Session,Servlet对Cookie与Session有着很好的支持,可以实现会话的管理操作. 1.Cookie

  • 浅谈Servlet的Cookie和Session机制

    一.Servlet Cookies Cookies定义:Cookies是存储在客户端计算机上的文本文件,并保留了用户的各种跟踪信息. Cookies作用:会话保持,如完成用户的登录与状态保持 Cookies的工作原理: 客户端向服务区发起登录请求 服务器脚本(代码)向浏览器发送一组Cookies,例如:姓名,年龄等 浏览器将这些信息存储在本地计算机上,以备将来使用 当下一次浏览器向web服务器发送任何请求时.浏览器会把这些Cookies信息发送到服务器,服务器将使用这些信息来识别账户 1.1 C

  • Action访问Servlet的API的简单实例

    Action访问Servlet的API_,主要访问如下: 1.>获取request对象 2.>获取请求参数 3.>获取response对象,可用于传递cookie 3.>获取作用域对象,request,Session,application,并设置共享数据, 访问方式一: 通过实现感知接口中的setter方法,讲其setter方法中的request参数传递到本类中来: 即,在本类中定义一个成员变量,来接收setter方法中的request. 如果,还需要获取response,Ses

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

    目录 SpringBoot找不到javax.servlet.Filter的问题 启动SpringBoot项目找不到报错 这是我配置的(有问题的) 正确的配置(在远程maven仓库中搜索的配置) SpringBoot找不到javax.servlet.Filter的问题 新创建一个SpringBoot项目,编译时出现了找不到javax.servlet.Filter的异常. 这个类位于tomcat-embed这个jar下面,这里的解决方法并不是像网上大部分所说的手动添加这个jar,因为这是由于没有添加

  • IntelliJ IDEA里找不到javax.servlet的jar包的解决方法

    今天在复习Java Web时,因为初次使用 IntelliJ IDEA 中, 当使用javax.servlet包下的类时(例:javax.servlet.http.HttpServletRequest), 你会发现在IntelliJ IDEA里无法成功编译这个程序. 问题解决: 办法1:使用Project Structure 在弹出的窗口中选择tomcat所在的目录,进入里面的lib目录,寻找servlet-api.jar这个jar包(如果JSP页面也有相关的JavaWeb对象,则还要寻找jsp

  • 解决cannot be cast to javax.servlet.Filter 报错的问题

    cannot be cast to javax.servlet.Filter 报错, 原因servlet-api.jar冲突 使用maven开发web应用程序, 启动的时候报错: jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 然后输出错误: 严重: Exception starting filter encodingFilter java.lang

  • 解决springboot项目找不到resources目录下的资源问题

    springboot项目找不到resources目录下的资源 问题描述: 将老的mvc项目转为boot后找不到resources文件夹下的资源文件 原因: war包采用的是tomcat部署,tomcat会对war包进行解压,以及目录的一些操作.而springboot使用jar包部署,服务器中是不存在相关目录的. 环境: springboot 2.2.2RELAESE 主要的API: ClassPathResource classPathResource = new ClassPathResour

  • SpringBoot项目War包部署无法注册到Nacos中的解决

    目录 SpringBoot项目War包部署无法注册到Nacos中 问题 解决方案 SpringBoot项目war包部署及出现的问题 1.修改pom文件 2.在启动类或者配置类中继承SpringBootServletInitializer SpringBoot项目War包部署无法注册到Nacos中 注: 其实标题的描述不是很准确,准确的说是已经注册成功并且可以正常访问,但是在服务列表却看不到. 问题 最近在进行Eureka迁移Nacos架构升级的时候,发现有两个之前的旧项目,虽然也是SpringB

  • springBoot项目中使用@Value取值出现的问题及解决

    目录 使用@Value取值出现的问题 1.一般情况下定义一个字段 2.但是通常我们会把它用在工具类当中 3.工具类最好加上@Component或者其他注解 记springBoot使用@Value出现的乌龙 先看一下代码 然后在需要的地方如下使用 使用@Value取值出现的问题 在springBoot项目中我们一般会把一些路径或者资源写在配置文件中,方便管理. 但是取得时候有可能会出现一些问题. file.uploadFolder=E://upload/ 1.一般情况下定义一个字段 在上面使用@V

  • SpringBoot项目打包发布到外部tomcat(出现各种异常的解决)

    先说遇到问题的情景: 初次尝试使用spring boot框架写了个小web项目,在Intellij IDEA中能正常启动运行.使用maven 运行install,生成war包,发布到本机的tomcat下,出现异常,主要的异常信息是  .......LifeCycleException.经各种搜索,找到答案. spring boot因为内嵌tomcat容器,所以可以通过打包为jar包的方法将项目发布,但是如何将spring boot项目打包成可发布到tomcat中的war包项目呢? 1. 既然需要

  • SpringBoot项目鉴权的4种方式小结

    目录 前言 传统AOP 实现 扩展 Interceptor 实现 扩展 ArgumentResolver 扩展 Filter 扩展 小结 文章介绍了spring-boot中实现通用auth的四种方式,包括 传统AOP.拦截器.参数解析器和过滤器,并提供了对应的实例代码,最后简单总结了下他们的执行顺序. 前言 最近一直被无尽的业务需求淹没,没时间喘息,终于接到一个能让我突破代码舒适区的活儿,解决它的过程非常曲折,一度让我怀疑人生,不过收获也很大,代码方面不明显,但感觉自己抹掉了 java.Tomc

  • 解决springboot 启动找不到主类的问题

    springboot 启动找不到主类 利用eclipse的maven插件,清理了了一下springboot的项目,结果再启动就找报找不到主类的错误了. 原因: 是你清理了编译好的class文件. 解决办法是: 使用maven插件的命令 package 进行编译就好了.就是在输入jetty:run 那里换成 package springboot错误: 找不到或无法加载主类 一:当在eclipse启动spring boot项目时出现问题: springboot错误: 找不到或无法加载主类 解决办法:

  • springboot中.yml文件的值无法读取的问题及解决

    目录 yml文件的值无法读取的问题 1.添加maven依赖 2.注解方式在需要使用变量名的类上加上注解 ,@Configuration 3..yml文件配置如下 yml文件不被识别 解决方法 yml文件的值无法读取的问题 1.添加maven依赖 <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-configuration-proce

随机推荐