繁体   English   中英

jax-rs未填充Bean输入

[英]Bean input not being populated by jax-rs

我有以下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作为请求主体创建User时,确实创建了User对象,但未填充字段。 我能够验证请求正文是否确实包含传递的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);

摆脱@BeanParam@FormParam 这些不用于JSON主体。 无需注释的参数足以使其正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM