Ho un endpoint Jax-rs distribuito nell'archivio WAR su JBoss 7.1.1. Nella sua risposta JSON non voglio che il mio nome di campo null
sia incluso, quindi metto @JsonSerialize
su di esso.Jackson @JsonSerialize ignorato in Jboss 7.1.1 se maven dependecy è impostato su fornito
class MyResponse {
private Long id;
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private String name;
private List<String> addresses;
// getters and setters
}
mio pom.xml
ha il seguente
<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>
Quando il scope
per resteasy-jackson-provider
è impostato su provided
ignora l'annotazione e restituisce null
in risposta JSON. Tuttavia quando rimuovo il scope
dalla dipendenza di maven - funziona.
Dalla pagina qui https://docs.jboss.org/author/display/AS71/Implicit+module+dependencies+for+deployments sembra che JBoss debba caricare automaticamente questo modulo se è stata rilevata la distribuzione Jax-RS.
Ora non so se questo è un bug e se dovrei includere questa dipendenza (NON tenerlo provided
). O forse sto facendo qualcosa di sbagliato lì?
Grazie mille, Mark, questo ha funzionato (JBoss EAP 6.3) per me e posso riprendere il mio riposo felice codifica :) –