JBoss 7.1.1 の WAR アーカイブに Jax-rs エンドポイントをデプロイしました。nullその JSON 応答に、フィールド名を含めたくないので、付け@JsonSerializeました。
class MyResponse {
private Long id;
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private String name;
private List<String> addresses;
// getters and setters
}
私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>
scopeforresteasy-jackson-providerが設定されている場合provided、アノテーションは無視さnullれ、JSON 応答で返されます。ただし、scopemaven 依存関係から削除すると、機能します。
ここのページからhttps://docs.jboss.org/author/display/AS71/Implicit+module+dependencies+for+deployments Jax-RS デプロイメントが見つかった場合、JBoss はこのモジュールを自動ロードする必要があるようです。
これがバグなのか、この依存関係を本当に含める必要があるのか どうかはわかりません(保持しないでくださいprovided)。それとも、私はそこで何か間違ったことをしていますか?