2013-08-19 56 views

Trả lời

9

Bạn cần đăng ký JacksonFeature trong đơn đăng ký nếu bạn muốn sử dụng Jackson làm nhà cung cấp JSON của mình (bằng cách đăng ký tính năng này, bạn vô hiệu hóa MOXy làm nhà cung cấp JSON).

Bạn có thể làm điều đó hoặc trong Application lớp con:

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; 
    } 
} 

hoặc trong 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); 

Xem Jackson phần trong Jersey Hướng dẫn người sử dụng để biết thêm thông tin.

+0

Tôi có thể tìm thấy vị trí lớp Jackson ở đâu? – Dejell

+1

'JacksonFeature' nằm trong' org.glassfish.jersey.media: jersey-media-json-jakson'. Mô-đun này mang đến cho Jackson 1.9.x với nó. Nếu bạn muốn sử dụng Jackson 2.x, chỉ cần thêm phụ thuộc vào 'com.fasterxml.jackson.jaxrs: jackson-jaxrs-json-provider' và nó sẽ được tự động kích hoạt nhờ cơ chế' META-INF/services'. –

+0

Xem [câu trả lời này] (http://stackoverflow.com/questions/23730062/use-iso-8601-dates-in-jax-rs-responses) để biết hướng dẫn đầy đủ để đạt được điều này trên GlassFish 4 với bản dựng Maven. –

0

trả lời bởi Michal Gajdos là đúng, chỉ cần để thêm vào đó, thêm sự phụ thuộc này trong pom.xml của bạn,

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

Đừng có đủ tín dụng để bình luận.