Mam punkt końcowy Jax-rs wdrożony w archiwum WAR na JBoss 7.1.1. W odpowiedzi JSON nie chcę, aby moja nazwa pola null
została uwzględniona, więc umieszczam na niej @JsonSerialize
.Jackson @JsonSerialize zignorowany w Jboss 7.1.1, jeśli maven dependecy ustawiony na dostarczony
class MyResponse {
private Long id;
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private String name;
private List<String> addresses;
// getters and setters
}
My pom.xml
ma następującą
<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>
Gdy scope
dla resteasy-jackson-provider
jest ustawiony na provided
ignoruje adnotacji i zwraca null
w odpowiedzi JSON. Jednak po usunięciu zależności scope
from maven - działa.
Wygląda na to, że JBoss powinien automatycznie wczytać ten moduł, jeśli zostanie znalezione wdrożenie Jax-RS.
Teraz nie wiem, czy to jest błąd i czy powinienem naprawdę uwzględnić tę zależność (NIE zachowując tego provided
). A może robię coś nie tak?
Wielkie dzięki, Mark, to zadziałało (JBoss EAP 6.3) dla mnie i mogę wznowić mój szczęśliwy odpoczynek kodowania :) –