I'm developing a RESTful web application using Jersey and deploying it on Tomcat 10. My application is hosted at http://localhost:8080/jrapi/. However, when I click on a link that should call the endpoint webapi/myresource, I get a 500 Internal Server Error with the following details:
Error Message
HTTP Status 500 – Internal Server Errorjakarta.servlet.ServletException: Servlet.init() for servlet [jersey-servlet] threw exceptionRoot Cause:java.lang.NoSuchMethodError: 'void org.glassfish.jersey.model.internal.CommonConfig.<init>(jakarta.ws.rs.RuntimeType, java.util.function.Predicate)'
pom.xml
<dependencies><dependency><groupId>org.glassfish.jersey.core</groupId><artifactId>jersey-common</artifactId><version>2.26-b03</version></dependency><dependency><groupId>org.glassfish.jersey.core</groupId><artifactId>jersey-server</artifactId><version>3.1.1</version></dependency><dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-servlet</artifactId><version>3.1.1</version></dependency><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>5.0.0</version><scope>provided</scope></dependency></dependencies>
web.xml
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" version="5.0"><servlet><servlet-name>jersey-servlet</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param><param-name>jersey.config.server.provider.packages</param-name><param-value>mishra_infotech</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>jersey-servlet</servlet-name><url-pattern>/webapi/*</url-pattern></servlet-mapping></web-app>
Endpoint Code(App.java)
package mishra_infotech;import jakarta.ws.rs.GET;import jakarta.ws.rs.Path;import jakarta.ws.rs.Produces;import jakarta.ws.rs.core.MediaType;@Path("webapi/myresource")public class App { @GET @Produces(MediaType.TEXT_PLAIN) public String getIt() { return "Ho gya finally!"; }}