DispatcherServlet 无法转换为 class jakarta.servlet.Servlet (ClassCastException)
DispatcherServlet cannot be cast to class jakarta.servlet.Servlet (ClassCastException)
我遇到了与这里类似的问题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)
Spring(和Spring Boot)目前只支持JavaEE,不支持JakartaEE。这意味着它只会 运行 on/with JavaEE 兼容服务器。 Tomcat10 is an implementation of the JakartaEE specification which currently isn't supported.
唯一的解决办法是降级到Tomcat9.
我遇到了与这里类似的问题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)
Spring(和Spring Boot)目前只支持JavaEE,不支持JakartaEE。这意味着它只会 运行 on/with JavaEE 兼容服务器。 Tomcat10 is an implementation of the JakartaEE specification which currently isn't supported.
唯一的解决办法是降级到Tomcat9.