JAX-RS:如何同时为@BeanParam和实体参数使用一个资源方法参数?

时间:2015-01-11 20:35:34

标签: java jackson jax-rs resteasy

我的服务类中有以下REST资源:

@POST
@Path("/{personId}/email")
public Response changeEmail(
    @BeanParam ChangeEmailCmd command
) {
    return runCommand(command);
}

我喜欢将请求主体反序列化到ChangeEmailCmd实例中,同时将一些额外的参数(例如上例中的personId path参数)注入到同一个实例中。

这有可能吗?上面的例子不起作用。使用@BeanParam注释'command'参数时,会根据需要注入额外的参数,但不再反序列化主体。

是否有可能将方法参数标记或注释为“实体”? 我试过各种各样的注释和其他黑客但到目前为止没有运气。

RESTeasy 3.0.8,Jackson 2.3.2和Weld 2.1.2

修改(添加了ChangeEmailCmd定义):

public class ChangeEmailCmd {

    public String newEmail;

    @PathParam("personId")
    public UUID personId;
}

0 个答案:

没有答案