此问题在此处已有答案:
Tomcat 10 throws java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet [duplicate](1个答案)
Tomcat 10.x throws java.lang.NoClassDefFoundError on javax.servlet.* [duplicate](2个答案)
24天前关闭
我正在使用Java Maven项目,但我得到了一些错误。请找到我已经给出了下面的项目代码。我在Eclipse Java EE IDE工作
This is My Project Code:
Tomcat版本v10.1
JDK 11
HTTP Status 500 – Internal Server Error
Type Exception Report
Message Error instantiating servlet class [org.springframework.web.servlet.DispatcherServlet]
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
jakarta.servlet.ServletException: Error instantiating servlet class [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)
Root Causejava.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(Native Method)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)
字符串
1条答案
按热度按时间mm9b1k5b1#
Tomcat版本10不理解
javax.*
包中的类。因此,许多在代码中包含javax
的应用程序,以及为Java EE的早期版本构建的应用程序(包括servlet和JSP,以及JSTL等标记库)无法在新版本的Tomcat 10上运行。因此,需要重写代码并将所有引用javax
替换为jakarta
、旧库,并且如果可用的话,还更新描述符中的应用版本。在所有依赖项中,您还需要删除对
javax.*
的所有引用。如果你不想更新java-ee版本到JakartaEE,那么你应该使用Tomcat 9。