如何解决JAX-RS PUT方法 @Consumes批注声明的输入媒体如何注入到方法的参数中?
我在资源类中声明了以下方法。
@Path("{id:\\d+}")
@PUT
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public Response putPerson(@PathParam("id") long id,Person person) {
logger.debug("Going to update the person with id: {} to name {} age {} and salary {}",id,person.getName(),person.getAge(),person.getSalary());
db.put(id,person);
return Response.noContent().build();
}
在这里,我知道由于@PathParam批注,我的{id}路径值确实注入了id参数。但是我很好奇 @Consumes批注声明的输入媒体如何注入到person参数中?我想知道,因为没有声明用于将任何值注入person参数的批注。
我知道确实注入了媒体,因为我的logger语句确实打印了正确的值。
此注入过程是否记录在Jersey用户手册或任何JavaDocs中?
解决方法
我确实在section 7.1的《泽西岛用户指南》(2.31版)中找到了答案。它读取以下内容。
与提取方法相关的方法参数不同 请求参数,与 被消耗的表示形式不需要注释。其他 表示(实体)参数的单词不需要 具体的“实体”注释。没有注释的方法参数 是一个实体。 最多可以有一个这样的未注释方法参数 存在,因为最多只能有一个这样的表示 发送请求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。