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> 是导致报错的根源;所以直接删除这个属性;添加版本号属性,重启错误得到解决。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
详解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
-
Servlet连接数据库实现用户登录的实现示例
目录 一.需求: 二.先复习一下JDBC 1.概述: 2.开发步骤: 三.代码实现: 1.登录界面代码: 2.登录成功界面: 3.servlet代码: 4.数据库数据 5.登录成功页面: 6.登录失败界面: 7.登录界面: 做一个小案例顺便复习一下jdbc的知识 一.需求: 用户在浏览器输入用户名和密码,如果数据库中有数据,提醒用户登录成功,如果没有数据,提醒用户重新登录 二.先复习一下JDBC 今天用的时候有些细节忘了,知识还是需要多次复习啊,并不是说学过就是自己的. 1.概述: 用java程
-
基于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
-
SpringBoot详细讲解异步任务如何获取HttpServletRequest
目录 原因分析 解决方案 前置条件 pom配置 requrest共享 自定义request过滤器 自定义任务执行器 调用示例 原因分析 @Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null 在使用springboot的自定带的线程共享后,代码如下,Request不为null,但是偶发的其中body/head/urlparam内容出现获取不到的情况,是因为异步任务在未执行完毕的情况下,主线程已经返回,拷贝共享的Request对象数据被清空 Servlet
-
Action访问Servlet的API的简单实例
Action访问Servlet的API_,主要访问如下: 1.>获取request对象 2.>获取请求参数 3.>获取response对象,可用于传递cookie 3.>获取作用域对象,request,Session,application,并设置共享数据, 访问方式一: 通过实现感知接口中的setter方法,讲其setter方法中的request参数传递到本类中来: 即,在本类中定义一个成员变量,来接收setter方法中的request. 如果,还需要获取response,Ses
-
浅谈Servlet的Cookie和Session机制
一.Servlet Cookies Cookies定义:Cookies是存储在客户端计算机上的文本文件,并保留了用户的各种跟踪信息. Cookies作用:会话保持,如完成用户的登录与状态保持 Cookies的工作原理: 客户端向服务区发起登录请求 服务器脚本(代码)向浏览器发送一组Cookies,例如:姓名,年龄等 浏览器将这些信息存储在本地计算机上,以备将来使用 当下一次浏览器向web服务器发送任何请求时.浏览器会把这些Cookies信息发送到服务器,服务器将使用这些信息来识别账户 1.1 C
-
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
随机推荐
- 简单谈谈PHP中的Reload操作
- Microsoft VBScript 编译器错误 错误 '800a03e9' 内存不够的解决方法
- MySql服务器系统变量和状态变量介绍
- js+ajax实现的A*游戏路径算法整理第1/2页
- 关于Unsupported major.minor version 49.0的错误解决办法
- 诺顿防病毒软件 Norton Antivirus v2007+KeyGen下载
- SQL一条语句统计记录总数及各状态数
- master数据库损坏的解决办法有哪些
- 一条select语句引起的瓶颈问题思考
- Javascript 事件流和事件绑定
- 分享自己用JS做的扫雷小游戏
- UPDATE注射(mysql+php)的两个模式
- win7+apache+php+mysql环境配置操作详解
- Android ListView的OnItemClickListener详解
- 简单总结C++中的修饰符类型
- node.js中的fs.lchown方法使用说明
- C#远程发送和接收数据流生成图片的方法
- 深入phpMyAdmin的安装与配置的详细步骤
- 玩转网络MAC地址
- vue判断input输入内容全是空格的方法