gra*_*hez 9 jboss json jax-rs jackson java-ee-6
我在JBoss 7.1.1上的WAR存档中部署了Jax-rs端点.在其JSON响应中,我不希望null
包含我的字段名称,所以我把@JsonSerialize
它放在上面.
class MyResponse {
private Long id;
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private String name;
private List<String> addresses;
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我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>
Run Code Online (Sandbox Code Playgroud)
当scope
for resteasy-jackson-provider
设置为provided
it时,忽略注释并返回null
JSON响应.但是,当我删除scope
maven依赖 - 它的工作原理.
从这里的页面https://docs.jboss.org/author/display/AS71/Implicit+module+dependencies+for+deployments看起来JBoss应该在发现Jax-RS部署时自动加载此模块.
现在我不知道这是不是一个bug,如果我真的应该包含这个依赖(不保留它provided
).或者也许我在那里做错了什么?
小智 14
您需要确保创建JBoss部署结构描述符.
由于这是一个Maven项目,我假设它将在src/main/webapp/WEB-INF/jboss-deployment-structure.xml下
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
<deployment>
<dependencies>
<module name="org.codehaus.jackson.jackson-core-asl" />
<module name="org.codehaus.jackson.jackson-mapper-asl" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)
这将允许RESTEasy和Jackson的内置支持在JBoss 7.1.x或JBoss EAP 6.x中正常工作.如果没有此描述符,RESTEasy将使用Jettison提供程序.
归档时间: |
|
查看次数: |
3987 次 |
最近记录: |