Dans WebSphere Application
Server version 8, le processeur JSON par défaut qui gère la sérialisation
des classes annotées JAXB vers JSON est Jackson. Si vous souhaitez utiliser le processeur
IBM® JSON4J à partir de versions précédentes de
Feature Pack for Web 2.0, vous devez ajouter une classe de fournisseur.
Jackson offre un traitement JSON plus avancé.
Pourquoi et quand exécuter cette tâche
Pour utiliser le processeur IBM JSON4J
dans votre application, vous devez ajouter une classe Java™
qui étend la classe JSON4JJAXBProvider à votre application.
Procédure
- Si vous utilisez l'analyse des annotations sans spécifier toutes les classes
JAX-RS via une sous-classe javax.ws.rs.core.Application,
vous devez ajouter une classe Java qui étend
la classe com.ibm.websphere.jaxrs.providers.json4j.JSON4JJAXBProvider. L'exemple suivant illustre une classe JSON4JJAXBProvider personnalisée :
package com.example.jaxrs;
@Provider
@Consumes(value = {MediaType.APPLICATION_JSON, "application/javascript"})
@Produces(value = {MediaType.APPLICATION_JSON, "application/javascript"})
public class CustomJSON4JJAXBProvider extends
com.ibm.websphere.jaxrs.providers.json4j.JSON4JJAXBProvider {
}
- Si vous utilisez une classe javax.ws.rs.core.Application personnalisée
qui répertorie les classes JAX-RS, vous devez ajouter la classe JSON4JJAXBProvider
personnalisée à la sous-classe Application. L'exemple suivant illustre une sous-classe Application personnalisée :
package com.example.jaxrs;
public class CustomApplication extends javax.ws.rs.core.Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
/* add your normal JAX-RS classes */
classes.add(CustomJSON4JJAXBProvider.class);
return classes;
}
}
Résultats
Vous utilisez maintenant le processeur IBM JSON4J
pour la sérialisation JAXB-JSON au lieu du processeur Jackson intégré par défaut
dans le produit.