错误记录:从把项目从Tomcat8.5.37转到Tomcat10.1.7
错误信息:在本地Servlet项目里没有报错,但是浏览器跳转该servlet时报错
型 异常报告
消息 实例化Servlet类[com.wangdao.lx.MyServlet1]异常
描述 服务器遇到一个意外的情况,阻止它完成请求。
例外情况
jakarta.servlet.ServletException: 实例化Servlet类[com.wangdao.lx.MyServlet1]异常org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:842)
根本原因。
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletjava.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2487)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1401)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:842)
根本原因。
java.lang.ClassNotFoundException: javax.servlet.http.HttpServletorg.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1437)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2487)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1401)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:842)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看
错误原因
:Tomcat 10或更高版本,那么javax.servlet.http.HttpServlet
这个类已经从javax.servlet
包移动到了jakarta.servlet
包。因此,如果你的应用程序是用新的jakarta.servlet
包编写的,但你使用了旧的Servlet API jar,或者相反,就会导致这个错误。
具体错误信息:这个异常报告表明在尝试实例化MyServlet1
这个Servlet类时出现了问题。具体来说,服务器无法找到javax.servlet.http.HttpServlet
这个类,这通常意味着Servlet API的jar文件没有被正确地包含在应用程序的类路径中。
这里有几个可能的原因和解决方案:
- 缺少Servlet API jar:确保你的Web应用程序的
WEB-INF/lib
目录中包含了Servlet API的jar文件。对于Java EE应用程序,这通常是javax.servlet-api.jar
。 - 错误的Servlet API版本:如果你正在使用的是Tomcat 10或更高版本,那么
javax.servlet.http.HttpServlet
这个类已经从javax.servlet
包移动到了jakarta.servlet
包。因此,如果你的应用程序是用新的jakarta.servlet
包编写的,但你使用了旧的Servlet API jar,或者相反,就会导致这个错误。 - 类路径问题:确保你的开发环境(如Eclipse、IntelliJ IDEA等)和部署环境都将Servlet API的jar文件包含在了类路径中。
- 部署问题:如果你是在部署到服务器上时遇到这个问题,可能是因为部署过程中没有正确地复制
WEB-INF/lib
目录下的jar文件。 - 服务器配置问题:在某些情况下,服务器的配置可能会导致这个问题。检查服务器的文档,确保没有相关的配置错误。
解决这个问题的步骤可能包括:
- 确认
WEB-INF/lib
目录下是否有正确的Servlet API jar文件。 - 如果你在使用Maven或Gradle,检查
pom.xml
或build.gradle
文件,确保依赖项是正确的。 - 如果你的应用程序是用新的
jakarta.servlet
包编写的,确保你使用的是相应的Tomcat版本和Servlet API jar。 - 清理并重新构建你的应用程序。
- 如果问题依然存在,检查服务器日志以获取更多信息,或者在你的开发环境中查看是否有任何配置错误。
解决方法:因为我电脑上有两个版本的tomcat
所以要把项目的tomcat自带的jar包从8版本切换到10版本的jar包
具体操作:
把原来这个地方的8版本的jar包删了
!在这里插入图片描述
最后再把servlet里的import的jar包删了,import新的jar包,具体jar包类型请看上面错误原因。
为什么不用tomcat8,而选择tomcat10,因为,html里的表单若是中文,get或post方法提交表单时,在重写servlet的方法里若控制台输出参数值,则容易出现乱码。
因此以后选择tomcat10
相关文章:

错误记录:从把项目从Tomcat8.5.37转到Tomcat10.1.7
错误信息:在本地Servlet项目里没有报错,但是浏览器跳转该servlet时报错 型 异常报告 消息 实例化Servlet类[com.wangdao.lx.MyServlet1]异常 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 jakarta.servlet.ServletExceptio…...

AJAX基础知识
定义 Ajax 异步 JavaScript 和 XML ( async javascript and xml ),使用 Ajax 技术网页应用能够快速地将数据更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操…...

xcode依赖包package已经安装,但是提示No such module ‘Alamofire‘解决办法
明明已经通过xcode自带的swift包管理器安装好了依赖包,但是却还是提示:No such module,这个坑爹的xcode,我也只能说服气,但是无奈,没办法攻打苹果总部,只能自己想解决办法了 No such module Ala…...

基于Centos7 安装k8s一主两从
一、资源准备 mac下虚拟机环境搭建 1、使用搜狐的iso源 http://mirrors.sohu.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso 下载 iso镜像。 2、https://www.macwk.com/soft/vmware 下载 mac vm虚拟机 3、搭建一主两从集群所需虚拟机 4、新建虚拟机…...

基于java实现图片中任意封闭区域识别
需求: 在浏览器中给用户呈现一张图片,用户点击图片中的某些标志物,需要系统给出标志物的信息反馈,达到一个交互的作用。 比如下图中,点击某个封闭区域时候,需要告知用户点击的区域名称及图形形状特性等等。…...
闭包是什么?有什么特性?对页面有什么影响?
闭包是指在一个函数内部定义的函数,并且该函数可以访问到外部函数的变量。闭包可以将外部函数的变量保持在内存中,并且不会被释放。 闭包具有以下特性: 1. 函数内部定义的函数可以访问外部函数的变量。 2. 外部函数的变量可以保持在内存中&a…...

MS Excel: 高亮当前行列 - 保持原有格式不被改变
本文使用条件格式VBA的方法实现高亮当前行列,因为纯VBA似乎会清除原有的高亮格式。效果如下:本文图省事就使用同一种颜色了。 首先最重要的,【选中你期望高亮的单元格区域】,比如可以全选当前sheet的全部区域 然后点击【开始】-【…...
langchain学习(十三)
一、将其他chain的输入作为新chain的输出,三种方式 1、采用连接符"|",推荐 2、采用lamba表达式输入 3、采用pipe方法 from langchain_community.chat_models import ChatOllama from langchain_core.output_parsers import StrOutputParse…...
【Nginx】深入解析Nginx配置文件
Nginx(发音为“engine-ex”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。由于其高并发性、低资源消耗和模块化设计,Nginx在全球范围内被广泛使用。本文将深入解析Nginx配置文件,帮助读者了…...

深入了解Nginx(一):Nginx核心原理
一、Nginx核心原理 本节为大家介绍Nginx的核心原理,包含Reactor模型、Nginx的模块化设计、Nginx的请求处理阶段. (本文源自微博客,且已获得授权) 1.1、Reactor模型 Nginx对高并发IO的处理使用了Reactor事件驱动模型。Reactor模型的基本组件包含时间收集…...

产品经理-流程图结构图(四)
1. 流程图 1.1 概念 为了达到特定的目标而进行的一系列有逻辑性的操作步骤,由两个及以上的步骤,完成一个完整的行为的过程,可称之为流程 1.2 产品经理为什么需要绘制流程图? 保证产品的使用逻辑合理顺畅向项目组其他成员清晰的…...

15、Spring系统-AOP
ProxyFactory选择cglib或jdk动态代理原理 ProxyFactory在生成代理对象之前需要决定到底是使用JDK动态代理还是CGLIB技术: 代理对象创建过程 JdkDynamicAopProxy 在构造JdkDynamicAopProxy对象时,会先拿到被代理对象自己所实现的接口,并且…...

服务器感染了. rmallox勒索病毒,如何确保数据文件完整恢复?
导言: 近年来,随着信息技术的飞速发展,网络安全问题日益凸显。其中,勒索病毒作为一种严重的网络威胁,对个人和企业数据造成了巨大的威胁。本文将重点介绍.rmallox勒索病毒的特点、传播途径以及应对策略,旨…...
[每日一练]按日期分组销售产品的最优解法
该题目来自于力扣的pandas题库,链接如下: 1484. 按日期分组销售产品 - 力扣(LeetCode) 题目要求: 表 Activities: ---------------------- | 列名 | 类型 | ---------------------- | sell_…...

免费wordpress中文主题
免费大图wordpress主题 首页是一张大图的免费wordpress主题模板。简洁实用,易上手。 https://www.jianzhanpress.com/?p5857 免费WP模板下载 顶部左侧导航条的免费WP模板,后台简洁,新手也可以下载使用。 https://www.jianzhanpress.com/…...

单链表经典算法题理解
目录 1. 前言: 2. 移除链表元素 3. 反转链表 4. 合并两个有序链表 5. 链表的中间节点 6. 环形链表的约瑟夫问题 7. 分割链表 1. 前言: 当我们学习了单链表之后,我能可以尝试的刷一下题了,以下分享一下几道题的解法 2. 移…...

STM32的时钟介绍
目录 前言1. 简介1.1 时钟是用来做什么的1.2 时钟产生的方式 2. 时钟树的组成2.1 时钟源2.1.1 内部时钟2.1.2 外部时钟 2.2 PLL锁相环2.3 SYSCLK2.4 AHB和HCLK2.5 APB和PCLK2.6 总结 3. STM32时钟的如何进行工作4.我的疑问4.1 使用MSI和HSI有什么区别吗?4.2 MSI的频…...
FindBI学习总结
大数据分析BI工具:用户只需简单拖拽便能制作出丰富多样的数据可视化信息 关注点: 快速入门、数据加工、构建图表和分析数据、数据分析进阶 1、界面介绍 目录–仪表板–数据准备 仪表板目录–预览区域 快速上手: 1、数据准备2、制作仪表板3、分…...

k8s——Pod详解
一、Pod基础概念 1.1 Pod定义 Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理Pod运行…...

Visual Studio 的调试
目录 引言 一、调试的基本功能 设置断点 启动调试 检查变量 逐步执行代码 调用堆栈 使用即时窗口 二、调试技巧 条件断点 日志断点 数据断点 异常调试 三、调试高级功能 远程调试 多线程调试 内存调试 性能调试 诊断工具 四、调试策略与最佳实践 系统化的…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...