当前位置: 首页 > 知识库问答 >
问题:

DispatcherServlet无法强制转换为类Jakarta.Servlet.Servlet(ClassCastException)[duplicate]

邹缪文
2023-03-14

我有一个与这里类似的问题,DispatcherServlet不能强制转换为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)

共有1个答案

王弘和
2023-03-14

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

唯一的解决方法是降级到Tomcat9。

 类似资料:
  • 问题内容: 我使用maven-eclipse创建了一个新的Spring MVC项目,并引发以下错误: (我尝试了stackoverflow的一些解决方案,但这些解决方案在我的情况下不起作用。pom.xml出现了一些我找不到的问题。我为servlet- api添加了提供的作用域,并尝试了它也不起作用。) 我的pom.xml如下: 我的web.xml如下: 问题答案: 更改 至 具有以下说明: 这很像

  • 问题内容: 您好,我的代码正在抛出。StackTrace显示: 即@ ps.setDate(6,(Date)affiliate.getDate()); 在DAO 以下是我的servlet: 以下是我的DAO: 以下是我的DTO: 请在这方面帮助我 问题答案: 由于文档说,将在参数的需要类型的Date对象。但是您似乎在课堂上使用了对象。 这就是为什么你得到了。 要解决此问题,您需要将类中的对象类型更

  • 问题内容: 在我的应用程序中,我需要将arraylist转换为数组的字符串。但是,我得到一个错误: 在与我在一起的错误: 这是完整的代码: 问题答案: 尝试 注意:我建议将listofurls重命名为arrayOfURLs

  • 使用简单的Spring@autowire注入访问ModelMapper。User和CreateUserFormDTO类只是POJO。 会有什么问题?

  • 问题内容: 我有2个不同的Java项目,其中一个有2个类:。 在另一个项目中,我动态加载这两个类并将它们存储在 Object 然后,我继续使用创建一个对象并将其存储在该对象上,然后我还将创建一个对象并将其添加到会话中。 在Form项目的生命周期中,我调用从会话中加载先前创建的bean对象(我​​正在运行)。当我尝试将此对象投射回A时,它失败,并显示。 当我使用以下方法将对象拉出会话时 并使用 检查

  • 问题内容: 我知道在stackoverflow中已经对此提出了很多要求,但是我找不到适合我问题的答案。 在下面的以下代码中,我无法打印出每个项目,因为它说。 我曾尝试使用来打印每个项目,但都无法正常工作。 我认为可能是由于Edge类中的方法导致的问题,但是如果我不使用它,我将无法获得真实的键号(它将被打印为或类似的形式) 感谢您之前的帮助 主班 边缘类 图类 节点类 问题答案: private H