错误记录:从把项目从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文件没有被正确地包含在应用程序的类路径中。

这里有几个可能的原因和解决方案:

  1. 缺少Servlet API jar:确保你的Web应用程序的WEB-INF/lib目录中包含了Servlet API的jar文件。对于Java EE应用程序,这通常是javax.servlet-api.jar
  2. 错误的Servlet API版本:如果你正在使用的是Tomcat 10或更高版本,那么javax.servlet.http.HttpServlet这个类已经从javax.servlet包移动到了jakarta.servlet包。因此,如果你的应用程序是用新的jakarta.servlet包编写的,但你使用了旧的Servlet API jar,或者相反,就会导致这个错误。
  3. 类路径问题:确保你的开发环境(如Eclipse、IntelliJ IDEA等)和部署环境都将Servlet API的jar文件包含在了类路径中。
  4. 部署问题:如果你是在部署到服务器上时遇到这个问题,可能是因为部署过程中没有正确地复制WEB-INF/lib目录下的jar文件。
  5. 服务器配置问题:在某些情况下,服务器的配置可能会导致这个问题。检查服务器的文档,确保没有相关的配置错误。

解决这个问题的步骤可能包括:

  • 确认WEB-INF/lib目录下是否有正确的Servlet API jar文件。
  • 如果你在使用Maven或Gradle,检查pom.xmlbuild.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/19129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Generative Action Description Prompts for Skeleton-based Action Recognition

标题:基于骨架的动作识别的生成动作描述提示 源文链接:https://openaccess.thecvf.com/content/ICCV2023/papers/Xiang_Generative_Action_Description_Prompts_for_Skeleton-based_Action_Recognition_ICCV_2023_paper.pdfhttps://openaccess.thecvf.c…

解决文件传输难题:如何绕过Gitee的100MB上传限制

引言 在版本控制和代码托管领域,Gitee作为一个流行的平台,为用户提供了便捷的服务。然而,其对单个文件大小设定的100MB限制有时会造成一些不便。 使用云存储服务 推荐理由: 便捷性:多数云存储服务如: Dro…

现代操作系统上创建各类链接的方法汇总

文章目录 现代操作系统上创建各类链接的方法汇总windows: cmd下的mklink创建链接示例 powershell 创建链接创建常规文件和目录创建链接 linux shell 创建硬链接NAMESYNOPSIS详细说明常用选项示例 检查与辨识符号链接🎈linux下检查ls -l 命令file 命令 windows下检查…

零基础学习图生图

目录 一、图生图是什么二、安装秋叶整合包2.1 秋叶包安装2.2 秋叶包拓展安装:2.3 ckpt配置:2.4 界面常用功能配置: 三、图生图基本功能展示3.1 图生图的界面3.2 重要的参数设置:3.3 涂鸦功能3.4 局部重绘功能3.5 涂鸦重绘3.6 上传…

SQL 语言:存储过程和触发器

文章目录 基本概述创建触发器更改和删除触发器总结 基本概述 存储过程,类似于高阶语言的函数或者方法,包含SQL语句序列,是可复用的语句,保存在数据库中,在服务器中执行。特点是复用,提高了效率&#xff0c…

网络智能化的发展对仿真环境的需求

1. 网络智能化背景介绍 1.1 什么是网络智能化 网络智能化是指利用人工智能(AI)、机器学习(ML)、优化算法等技术来实现网络的信息化、自动化和智能化。相对5G、6G、算力网络等领域,网络智能化是针对网络全场景、全要素…

使用C语言openssl库实现 RSA加密 和 消息验证

Q:什么是RSA? A:RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,是最早的一种用于公开密钥加密和数字签名的算法。它使用一对公钥(public key)和私钥(private key&…

去掉macOS终端命令行前的(base)

macOS在安装了Anaconda(或miniconda)后,每次打开terminal都会默认打开名为base的虚拟环境。 默认不启动base conda config --set auto_activate_base false默认启动base conda config --set auto_activate_base true

IEEE Latex模版踩雷避坑指南

参考文献 原Latex模版 \begin{thebibliography}{1} \bibliographystyle{IEEEtran}\bibitem{ref1} {\it{Mathematics Into Type}}. American Mathematical Society. [Online]. Available: https://www.ams.org/arc/styleguide/mit-2.pdf\bibitem{ref2} T. W. Chaundy, P. R. Ba…

【前端每日基础】day27——小程序开发

小程序开发详细介绍 基本概念 小程序:小程序是一种无需下载安装即可使用的应用。用户通过微信搜索或扫描二维码即可打开小程序。小程序具有触手可及、用完即走、体验良好的特点。 组成部分: WXML:用于描述页面的结构。 WXSS:用于…

2022职称继续教育--深入实施新时代人才强国战略 加快建设世界重要人才中心和创新高地

单选题(共7题,每题5分) 1、()实行职位职级制工资为主。 D、中长线科研重要岗位人员 2、建设世界重要人才中心和创新高地有()个阶段目标。 B、三 3、综合国力竞争说到底是(&#xf…

基于 FastAI 文本迁移学习的情感分类(93%+Accuracy)

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…

[vue3后台管理二]首页和登录测试

[vue3后台管理二]首页和登录测试 1 修改main.js import ./assets/main.cssimport { createApp } from vue import App from ./App.vue import router from ./router createApp(App).use(router).mount(#app)2 路由创建 import {createRouter, createWebHistory} from vue-ro…

计算机网络学习笔记——运输层(b站)

目录 一、 运输层概述 二、运输层端口号、复用与分用的概念 三、UDP和TCP的对比 四、TCP的流量控制 五、TCP的拥塞控制 六、TCP超时重传时间的选择 七、TCP可靠传输的实现 八、TCP报文段的首部格式 一、 运输层概述 物理层、数据链路层、网络层实现了主机到主机的通信…

使用springdoc-openapi-starter-webmvc-ui后访问swagger-ui/index.html 报错404

按照官网说明,引入 springdoc-openapi-starter-webmvc-ui后应该就可以直接访问swagger-ui.html或者swagger-ui/index.html就可以出现swagger页面了,但是我引入后,访问提示报错404. 在我的项目中,有其他依赖间接引入了org.webjars…

剪映网页版

https://www.capcut.cn/web 免费,免安装,跨平台,视频云合成,简直太好用了!

echarts-事件

echarts部分事件 添加点击事件 添加点击事件: let options {tooltip: {},xAxis: {type: "category",data: ["d1", "d2", "d3", "d4"],},yAxis: {},series: [{type: "line",data: d1,},{type: &qu…

Codeforces Round 948 (Div. 2) E. Tensor(思维题-交互)

题目 n(3<n<100)个点的有向图&#xff0c; 图的边的关系未知&#xff0c;但保证以下两点&#xff1a; 1. 只存在j->i&#xff08;i<j&#xff09;的边 2. 对于任意三个点i、j、k&#xff08;i<j<k&#xff09;&#xff0c;要么k可以到达i&#xff0c;要么…

18 js时间对象

时间对象是一种复杂数据类型&#xff0c;用来存储时间 创建时间对象 内置构造函数创建 语法&#xff1a;var 时间名new Date() var datenew Date()console.log(date) //Wed May 29 2024 16:03:47 GMT0800 (中国标准时间) 创建指定日期 当参数为数字——>在格林威治的时间基…

知识付费小程序源码系统 界面支持万能DIY装修,一站式运营 附带完整的源代码以及搭建教程

系统概述 这是一款功能强大的知识付费小程序源码系统&#xff0c;它为用户提供了一个全面的平台&#xff0c;能够满足各种知识付费场景的需求。其界面支持万能 DIY 装修&#xff0c;让用户可以根据自己的品牌形象和风格进行个性化定制&#xff0c;打造出独具特色的小程序界面。…