En WebSphere Application
Server versión 8, el procesador JSON predeterminado para manejar las clases anotadas JAXB
de serialización en JSON es Jackson. Si, en su lugar, desea utilizar el procesador JSON4J de IBM® de Feature Packs para Web 2.0, debe añadir una clase de proveedor. Jackson ofrece un proceso JSON más avanzado.
Acerca de esta tarea
Para utilizar el procesador IBM JSON4J
en su aplicación, debe añadir una clase Java™ que amplíe la clase JSON4JJAXBProvider a su aplicación.
Procedimiento
- Si utiliza la exploración de anotaciones y no especifica todas las clases JAX-RS mediante una subclase javax.ws.rs.core.Application, debe añadir una clase Java
que amplía la clase com.ibm.websphere.jaxrs.providers.json4j.JSON4JJAXBProvider. El ejemplo siguiente ilustra una clase personalizada JSON4JJAXBProvider:
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 utiliza una clase
javax.ws.rs.core.Application personalizada que lista las
clases JAX-RS, debe añadir el
JSON4JJAXBProvider personalizado a la subclase de
la aplicación. En el ejemplo siguiente se muestra una subclase Application personalizada:
package com.example.jaxrs;
public class CustomApplication extends javax.ws.rs.core.Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
/* añada sus clases JAX-RS normales */
classes.add(CustomJSON4JJAXBProvider.class);
return classes;
}
}
Resultados
Ahora utiliza el procesador IBM JSON4J
para la serialización JAXB-to-JSON en lugar del procesador Jackson predeterminado
incorporado en el producto.