JBoss 7.1.1のWARアーカイブにJax-rsエンドポイントがデプロイされています。 JSONレスポンスでは、null
フィールド名を含めることは望ましくないので、@JsonSerialize
を付けてください。JBoss 7.1.1でmaven dependecyが指定されている場合、@JsonSerializeが無視される
class MyResponse {
private Long id;
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private String name;
private List<String> addresses;
// getters and setters
}
resteasy-jackson-provider
ためscope
がprovided
に設定されているときに私のpom.xml
は、以下の
<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>
それは注釈を無視し、JSON応答でnull
を返しました。しかし、私がscope
をmaven依存関係から削除すると、動作します。
ここからhttps://docs.jboss.org/author/display/AS71/Implicit+module+dependencies+for+deployments Jax-RSのデプロイメントが見つかった場合、JBossはこのモジュールを自動ロードする必要があります。
これはバグかどうか、この依存関係を本当に含めるべきかどうかは分かりません(provided
を保持しない)。あるいは私はそこに何か間違っているのでしょうか?
ありがとうMark、これは私のために働いています(JBoss EAP 6.3)、私は幸せな残りのコーディングを再開できます:) –