根本原因:Java.lang.NoClassDefFoundError:javax/servlet/http/HttpServlet

问题描述 投票:0回答:1

我正在使用 Java Maven 项目,但我遇到了一些错误。请查找我已经给出了下面的项目代码。我正在 Eclipse Java EE IDE 中工作

这是我的项目代码链接

Tomcat Version v10.1
JDK 11

HTTP 状态 500 – 内部服务器错误

输入异常报告

实例化 servlet 类 [org.springframework.web.servlet.DispatcherServlet] 时出现消息错误

描述 服务器遇到意外情况,无法满足请求。

异常 jakarta.servlet.ServletException:实例化 servlet 类时出错 [org.springframework.web.servlet.DispatcherServlet] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) 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:1623)

根本原因java.lang.ClassNotFoundException:javax.servlet.http.HttpServlet org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)java.base/java.lang.ClassLoader.defineClass1(本机方法)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase .java:2352)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:800)

java xml spring spring-boot servlets
1个回答
0
投票

Tomcat 版本 10 不理解

javax.*
包中的类。因此,许多代码中包含
javax
的应用程序以及为早期版本的 Java EE 构建的应用程序(包括 servlet 和 JSP 以及 JSTL 等标签库)无法在新版本的 Tomcat 10 上运行。因此,需要重写代码并替换对旧库的所有引用,并更新描述符中的应用程序版本(如果可用)。

在所有依赖项中,您还需要删除所有对

javax.*

的引用
© www.soinside.com 2019 - 2024. All rights reserved.