Configurer Jackson en tant que fournisseur JSON dans JAX-RS 2.0
Je veux utiliser Jackson en tant que JSON fournisseur pour mon JAX-RS 2.0 webservice. Pour JAX-RS-je utiliser Jersey 2.0 dans GlassFish 4. Avec JAX-RS 1.x je peux ajouter
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
dans mon web.xml
. Comment puis-je le faire de Jax-RS 2.0 avec Jersey 2.0?
- Je mettre en œuvre une application de classe comme ceci
public class MyRESTExampleApplication extends ResourceConfig {
public MyRESTExampleApplication() {
packages("com.carano.fleet4all.restExample");
register(JacksonFeature.class);
}
}
et ajouter ces lignes à mon web.xml
.
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.restExample.MyRESTExampleApplication</param-value>
</init-param>
Mais j'obtiens une exception par la demande
org.glassfish.jersey.message.interne.MessageBodyProviderNotFoundException: MessageBodyWriter pas trouvé le type de support=application/json, type=classe ...
Mon pom.xml
ressemble à ceci
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
source d'informationauteur Tim
Vous devez vous connecter pour publier un commentaire.
Vous devriez seulement besoin d'obtenir la mise en œuvre pot Jackson JAX-RS fournisseurajoutez-le à votre classpath, et cela devrait fonctionner. La Version 2.x utilise SPI-fonction auto-inscription, de sorte que vous n'avez pas besoin de quoi que ce soit dans
web.xml
.Le code ci-dessus a fonctionné pour moi. JAX-RS 2.0 a fonctionnalité de détection automatique de sorte qu'il devrait détecter votre
jersey-media-json-jackson.jar
. Je suis à l'aide d'un Tomcat installation j'ai eu à appeler explicitementregister(JacksonFeature.class)
dans mon application comme vous le faites.