spring 根本原因:Java.lang.NoClassDefFoundError:javax/servlet/http/HttpServlet [duplicate]

67up9zun  于 2024-01-05  发布在  Spring
关注(0)|答案(1)|浏览(214)

此问题在此处已有答案

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

  1. HTTP Status 500 Internal Server Error
  2. Type Exception Report
  3. Message Error instantiating servlet class [org.springframework.web.servlet.DispatcherServlet]
  4. Description The server encountered an unexpected condition that prevented it from fulfilling the request.
  5. Exception
  6. jakarta.servlet.ServletException: Error instantiating servlet class [org.springframework.web.servlet.DispatcherServlet]
  7. org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  8. org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  9. org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
  10. org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
  11. org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
  12. org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  13. org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
  14. org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
  15. org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  16. org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
  17. org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  18. org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  19. java.base/java.lang.Thread.run(Thread.java:1623)
  20. Root Causejava.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
  21. 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)

字符串

mm9b1k5b

mm9b1k5b1#

Tomcat版本10不理解javax.*包中的类。因此,许多在代码中包含javax的应用程序,以及为Java EE的早期版本构建的应用程序(包括servlet和JSP,以及JSTL等标记库)无法在新版本的Tomcat 10上运行。因此,需要重写代码并将所有引用javax替换为jakarta、旧库,并且如果可用的话,还更新描述符中的应用版本。
在所有依赖项中,您还需要删除对javax.*的所有引用。
如果你不想更新java-ee版本到JakartaEE,那么你应该使用Tomcat 9。

相关问题