Tôi có điểm cuối Jax-rs được triển khai trong kho lưu trữ WAR trên JBoss 7.1.1. Trong phản hồi JSON của tôi, tôi không muốn tên trường null
của mình được bao gồm, vì vậy tôi đặt @JsonSerialize
trên đó.Jackson @JsonSerialize bị bỏ qua trong Jboss 7.1.1 nếu maven dependecy được thiết lập để cung cấp
class MyResponse {
private Long id;
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private String name;
private List<String> addresses;
// getters and setters
}
My pom.xml
có sau
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.3.2.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>2.3.2.Final</version>
<scope>provided</scope>
</dependency>
Khi scope
cho resteasy-jackson-provider
được thiết lập để provided
nó bỏ qua các chú thích và trả null
trong JSON phản ứng. Tuy nhiên khi tôi loại bỏ các scope
từ maven phụ thuộc - nó hoạt động.
Từ trang tại đây https://docs.jboss.org/author/display/AS71/Implicit+module+dependencies+for+deployments có vẻ như JBoss sẽ tự động tải mô-đun này nếu triển khai Jax-RS được tìm thấy.
Bây giờ tôi không biết đây có phải là lỗi hay không và liệu tôi có nên thực sự bao gồm sự phụ thuộc này hay không (KHÔNG giữ nó provided
). Hoặc có lẽ tôi đang làm điều gì sai ở đó?
Cảm ơn rất nhiều, Mark, điều này đã làm việc (JBoss EAP 6.3) cho tôi và tôi có thể tiếp tục phần còn lại hạnh phúc của tôi mã hóa :) –