No WebSphere Application
Server Versão 8, o processador JSON padrão para manipular a serialização de classes anotadas do
JAXB para JSON é Jackson. Se desejar usar o processador IBM® JSON4J a partir de Feature Packs para Web 2.0 anteriores no lugar, deverá incluir uma classe provedora.
Jackson oferece processamento JSON mais avançado.
Sobre Esta Tarefa
Para usar o processador IBM JSON4J
no seu aplicativo, você deve incluir uma classe Java™ que estenda a classe JSON4JJAXBProvider para seu aplicativo.
Procedimento
- Se usar a varredura de anotação e não especificar todas as classes
JAX-RS por meio de uma subclasse javax.ws.rs.core.Application,
deverá incluir uma classe Java que estenda
a classe com.ibm.websphere.jaxrs.providers.json4j.JSON4JJAXBProvider. O exemplo a seguir ilustra uma classe JSON4JJAXBProvider customizada:
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 {
}
- Se usar uma classe javax.ws.rs.core.Application customizada que lista
suas classes JAX-RS, deverá incluir seu JSON4JJAXBProvider customizado para
sua subclasse Aplicativo. O exemplo a seguir ilustra uma subclasse Aplicativo customizada:
pacote 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;
}
}
Resultados
Agora o processador IBM JSON4J
está sendo usado para serialização do JAXB-para-JSON em vez de usar o processador Jackson
padrão integrado no produto.