Do you need a JSON provider
At the time of writing, Jersey 2.x is merging with the following modules to support JSON:
Using Jackson
See the steps below to use Jackson as a JSON provider for Jersey 2.x:
Adding Jackson Module Dependencies
To use Jackson 2.x as your JSON provider, you need to add jersey-media-json-jackson to your pom.xml file:
<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.25.1</version> </dependency>
To use Jackson 1.x, it will look like this:
<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson1</artifactId> <version>2.25.1</version> </dependency>
Jackson module registration
In addition to adding the dependency mentioned above, you need to register JacksonFeature (or Jackson1Feature for Jackson 1.x) in the Application / ResourceConfig subclass:
@ApplicationPath("/api") public class MyApplication extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>> classes = new HashSet<Class<?>>(); classes.add(JacksonFeature.class); return classes; } }
@ApplicationPath("/api") public class MyApplication extends ResourceConfig { public MyApplication() { register(JacksonFeature.class); } }
If you do not have Application / ResourceConfig , you can register JacksonFeature in the web.xml deployment descriptor. Specified resource names, provider names, and fully-functional class names can be provided in a comma-separated value jersey.config.server.provider.classnames initialization parameter.
<init-param> <param-name>jersey.config.server.provider.classnames</param-name> <param-value>org.glassfish.jersey.jackson.JacksonFeature</param-value> </init-param>
MessageBodyWriter provided by Jackson, JacksonJsonProvider .
For more information, check out the Jersey documentation for general media type support.