java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
The Application#getProperties()
method was introduced in JAX-RS 2.0. And this error typically happens when you mix JAX-RS 1.x and JAX-RS 2.x.
So check the JARs on your classpath and remove everything that relates to JAX-RS 1.x (and Jersey 1.x).
Once you are using Maven, you can run mvn dependency:tree
and check what’s going on with your dependencies.
I also see a few things that may cause some headaches:
-
See below the correct Servlet API dependency for Tomcat 8 (don’t forget the
provided
scope):<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1</version> <scope>provided</scope> </dependency>
-
Ensure that all Jersey dependencies use the same version.
-
You probably don’t need the
javax.ws.rs-api
,jersey-server
andjersey-common
dependencies.-
Use
jersey-container-servlet
,jersey-media-json-jackson
andjersey-media-multipart
dependencies. -
The
jersey-container-servlet
dependency usesjavax.ws.rs-api
,
jersey-server
andjersey-common
as transitive dependencies.
-
-
You probably don’t need
<type>jar</type>
in your dependencies.