Anyone know how to solve the issue of HttpServletDispatcher casting to jakarta servlet?
I am getting below error when migrating my api from tomcat 9 to tomcat 10 and java 11 to java 17.
java.lang.ClassCastException : class org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher cannot be cast to class jakarta.servlet.Servlet (org.jboss.resteasy.plugins.server.HttpServletDispatcher is in unamed modelur of loader org.apache.catalina.loader.ParallelWebappClassLoader; jakarta.servlet.Sevlet is unnamed module of loader java.net.URLClassLoader)
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<init-param>
<param-name>jakarta.ws.rs.Application</param-name>
<param-value> My Application</param-value>
</init-param>
</servlet>
POM.xml
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.15.6.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-spring</artifactId>
<version>4.7.9.Final</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>6.1.15</version>
</dependency>
Is there any dependency I need to add?
Thanks
The version of RESTEasy you're using is way too old. That version targets Jakarta REST 2.1 which is javax
based. You need to upgrade to 6.2.11.Final, the current latest.
For RESTEasy Spring you should be using 3.2.0.Final.
I'd suggest using the RESTEasy BOM.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-bom</artifactId>
<version>10.0.0</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-bom</artifactId>
<version>6.2.11.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy.spring</groupId>
<artifactId>resteasy-spring</artifactId>
<version>3.2.0.Final</version>
</dependency>
</dependencies>