2013-08-19 24 views

Odpowiedz

9

Musisz zarejestrować JacksonFeature w swojej aplikacji, jeśli chcesz używać Jacksona jako dostawcę JSON (rejestrując tę ​​funkcję, wyłącz MOXy, aby być dostawcą JSON).

Można to zrobić albo w Application podklasy:

public class MyApplication extends Application { 

    public Set<Class<?>> getClasses() { 
     final Set<Class<?>> classes = new HashSet<Class<?>>(); 

     // Add root resources. 
     classes.add(HelloWorldResource.class); 

     // Add JacksonFeature. 
     classes.add(JacksonFeature.class); 

     return classes; 
    } 
} 

lub w ResourceConfig:

final Application application = new ResourceConfig() 
     .packages("org.glassfish.jersey.examples.jackson") 
     .register(MyObjectMapperProvider.class) // No need to register this provider if no special configuration is required. 
     // Register JacksonFeature. 
     .register(JacksonFeature.class); 

Zobacz Jackson sekcję Użytkownicy Jersey Guide, aby uzyskać więcej informacji.

+0

Gdzie mogę znaleźć lokalizację klasy Jackson? – Dejell

+1

'JacksonFeature' jest w' org.glassfish.jersey.media: jersey-media-json-jakson'. Ten moduł przynosi Jackson 1.9.x z nim. Jeśli chcesz używać Jackson 2.x, po prostu dodaj zależność od 'com.fasterxml.jackson.jaxrs: jackson-jaxrs-json-provider' i zostanie ona automatycznie włączona dzięki mechanizmowi' META-INF/services'. –

+0

Zobacz [tę odpowiedź] (http://stackoverflow.com/questions/23730062/use-iso-8601-dates-in-jax-rs-responses), aby uzyskać pełne instrukcje, aby osiągnąć to na GlassFish 4 z kompilacją Mavena. –

0

Odpowiedz przez Michal Gajdoš jest poprawna, tylko dodać do tego należy dodać tę zależność w pom.xml,

<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-json-jackson</artifactId> 
    <version>2.26</version> 
</dependency> 

nie mają wystarczająco dużo punktów, aby skomentować.