Glassfish4 đang sử dụng Moxy để tuần tự hóa các phản hồi REST thành JSON. Có ai biết làm thế nào để cấu hình ứng dụng để sử dụng Jackson thay vì Moxy?Lực lượng Glassfish4 sử dụng Jackson thay vì Moxy
7
A
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
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.
Tôi có thể tìm thấy vị trí lớp Jackson ở đâu? – Dejell
'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'. –
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. –