【问题标题】:DispatcherServlet cannot be cast to class jakarta.servlet.Servlet (ClassCastException) [duplicate]DispatcherServlet 无法转换为 jakarta.servlet.Servlet 类(ClassCastException)[重复]
【发布时间】:2021-06-18 20:09:51
【问题描述】:

我有一个与DispatcherServlet cannot be cast to Servlet 类似的问题,这是在使用 Eclipse 运行新的 Spring MVC 项目时。 但是,所有答案都建议使用 Maven 的解决方案,而我没有使用 Maven。

我为这个问题搜索了一天,但没有解决方案。

INFO: Starting Servlet engine: [Apache Tomcat/10.0.4]
Mar 22, 2021 9:59:10 AM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took 
[447] milliseconds.

Mar 22, 2021 9:59:10 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for 
this logger for a complete list of JARs that were scanned but no TLDs were found in them. 
Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.


 Mar 22, 2021 9:59:11 AM org.apache.catalina.core.ApplicationContext log
 INFO: Marking servlet [dispatcher] as unavailable

 Mar 22, 2021 9:59:11 AM org.apache.catalina.core.StandardContext loadOnStartup
 SEVERE: Servlet [dispatcher] in web application [/spring-mvc-demo] threw load() exception
 java.lang.ClassCastException: class org.springframework.web.servlet.DispatcherServlet cannot 
 be cast to class jakarta.servlet.Servlet (org.springframework.web.servlet.DispatcherServlet 
 is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader 
 @62e70ea3; jakarta.servlet.Servlet is in unnamed module of loader java.net.URLClassLoader 
 @8bd1b6a)
 
  at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1043)
  at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:984)

【问题讨论】:

标签: java spring eclipse spring-mvc tomcat


【解决方案1】:

Spring(和 Spring Boot)目前仅支持 JavaEE,不支持 JakartaEE。这意味着它只能在与 JavaEE 兼容的服务器上运行。 Tomcat10 是目前 isn't supported 的 JakartaEE 规范的实现。

唯一的解决方案是降级到 Tomcat 9。

【讨论】:

  • 严格来说我想你也可以试试Tomcat的转换工具。但它看起来还没有准备好生产。
猜你喜欢
  • 2017-07-18
  • 2020-10-04
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多