"How can I configure Jackson and its SerializationFeature in Wildfly?"
You don't need to configure it in Wildfly, you can configure it in the JAX-RS applciation. Just use a ContextResolver
to configure the ObjectMapper
(see more here). Something like
@Provider
public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> {
private final ObjectMapper mapper;
public ObjectMapperContextResolver() {
mapper = new ObjectMapper();
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
}
@Override
public ObjectMapper getContext(Class<?> type) {
return mapper;
}
}
If you don't already have the Jackson dependency, you need that, just as a compile-time dependency
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>3.0.8.Final</version>
<scope>provided</scope>
</dependency>
If you are using scanning to discover your resource classes and provider classes, the ContextResolver
should be discovered automatically. If you explicitly registering all your resource and providers, then you'll need to register this one also. It should be registered as a singleton.
UPDATE
As @KozProv mentions in a comment, it should actually be resteasy-jackson2-provider
as the artifactId for the Maven dependency. -jackson-
uses the older org.codehaus
(Jackson 1.x), while the -jackson2-
uses the new com.fasterxml
(Jackson 2.x). Wildfly by default uses The Jackson 2 version.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…