¿Cómo configurar Jackson en Wildfly?

Tengo un Session Bean con el siguiente método:

@POST @Consumes("application/x-www-form-urlencoded") @Path("/calculate") @Produces("application/json") public CalculationResult calculate(@FormParam("childProfile") String childProfile, @FormParam("parentProfile") String parentProfile) { ... } 

El resultado de cálculo devuelto no puede asignarse a JSON y se produce la siguiente excepción:

 Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class com.test.UniqueName and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)... 

¿Cómo puedo configurar Jackson y su SerializationFeature en Wildfly?

“¿Cómo puedo configurar Jackson y su SerializationFeature en Wildfly?”

No necesita configurarlo en Wildfly, puede configurarlo en la aplicación JAX-RS. Simplemente use un ContextResolver para configurar el ObjectMapper (vea más aquí ). Algo como

 @Provider public class ObjectMapperContextResolver implements ContextResolver { private final ObjectMapper mapper; public ObjectMapperContextResolver() { mapper = new ObjectMapper(); mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); } @Override public ObjectMapper getContext(Class type) { return mapper; } } 

Si aún no tiene la dependencia de Jackson, lo necesita, solo como una dependencia en tiempo de comstackción

  org.jboss.resteasy resteasy-jackson-provider 3.0.8.Final provided  

Si está utilizando la exploración para descubrir sus clases de recursos y clases de proveedores, ContextResolver debe descubrirse automáticamente. Si registra explícitamente todos sus recursos y proveedores, entonces deberá registrar también este. Debería registrarse como singleton.


ACTUALIZAR

Como @KozProv menciona en un comentario, en realidad debería ser resteasy-jackson2-provider como el artefacto para la dependencia de Maven. -jackson- usa el org.codehaus anterior (Jackson 1.x), mientras que -jackson2- usa el nuevo com.fasterxml (Jackson 2.x). Wildfly usa de forma predeterminada la versión Jackson 2.

Wildfly 9

pom.xml

  org.jboss.resteasy resteasy-jackson2-provider 3.0.8.Final provided  

Clase de Java

 @com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true) public class SomePojo implements Serializable { }