Hakim Saifee
Hakim Saifee

Reputation: 71

How to use Jackson with Jersey 2.8?

I am using Jersey 1.x Now I am migrating to Jersey 2.x

The problem right now I am facing is the use of Jackson(JSON provider) with Jersey 2.8

Tell me how can I get rid of this problem. I am going to use Jersey 2.8 so what to do for using Jackson with it.

Upvotes: 1

Views: 283

Answers (1)

Hakim Saifee
Hakim Saifee

Reputation: 71

Here I find the solution of my question.

The only thing I need to do is to register the Jackson provider and ContextResolver to ObjectMapper..

@Provider

public class UserObjectProvider implements ContextResolver {

final ObjectMapper defaultObjectMapper;
final ObjectMapper combinedObjectMapper;

public UserObjectProvider () {
    defaultObjectMapper = createDefaultMapper();
    combinedObjectMapper = createCombinedObjectMapper();
}

@Override
public ObjectMapper getContext(Class<?> type) {
    if (type == CombinedAnnotationBean.class) {
        return combinedObjectMapper;
    } else {
        return defaultObjectMapper;
    }
}

private static ObjectMapper createDefaultMapper() {
    final ObjectMapper result = new ObjectMapper();
    result.configure(Feature.INDENT_OUTPUT, true);

    return result;
}

// ...

}

Now register your Jackson provider.

final Application application = new ResourceConfig().register(UserObjectProvider.class)
.register(JacksonFeature.class);

Thanks

Upvotes: 1

Related Questions