【发布时间】:2017-04-29 04:19:06
【问题描述】:
我有以下 jax-rs 资源,
@Path("admin/user")
@Api(value = "Administration - User")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void createUser(@BeanParam User user) {
// ....
}
}
我的用户bean定义如下,
public class User {
@FormParam("firstName")
private String firstName;
@FormParam("lastName")
private String lastName;
}
当我发出 REST 请求以创建一个请求主体为 json 的用户时,确实会创建用户对象,但未填充字段。我能够验证请求正文确实包含传递的 json。
我正在使用 Wildfly 8.2.0。
我的 Maven 依赖项包括,
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.7.4</version>
</dependency>
和
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.0.10.Final</version>
<scope>provided</scope>
</dependency>
我错过了什么?
编辑 - 1
当我从 servlet 请求中手动读取 json 主体并通过对象映射器运行它时,它似乎工作得很好,
ObjectMapper objectMapper = new ObjectMapper();
final User user = objectMapper.readValue(json, User.class);
【问题讨论】:
标签: java json jackson jax-rs wildfly