錯誤記錄:從把項目從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.pswp.cn/bicheng/19129.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19129.shtml
英文地址,請注明出處:http://en.pswp.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;打造出獨具特色的小程序界面。…