【发布时间】:2015-12-13 14:15:36
【问题描述】:
我正在使用 Jersey RESTful Web 服务框架开发 REST 服务。
需要使用 url 编码的表单内容类型并将其解释/验证为 bean。
@POST @Path("put")
@Consumes("application/x-www-form-urlencoded")
@NotNull (message="Couldn't put this bean in the can, sorry")
public Response putABean( @Valid final MrBean bean ){ ... }
@XmlRootElement
public class MrBean {
@DecimalMin(value = "18" , message= "value must be at least 18")
@DecimalMax(value = "99" , message= "value must at most be 99")
@NotNull(message = "{null.generic}")
private Long age;
@NotNull(message = "{null.name.first}")
private String firstName;
@NotNull(message = "{null.name.last}")
private String lastName;
@Pattern(regexp="[0-9]{3,9}", message="{invalid.phone}")
@NotNull(message = "{null.generic}")
private String phone;
...
}
当资源使用 application/json 或 application/xml 时,这是可能的,但在 application/x-www-form-urlencoded 的情况下,我会收到“415 - Unsupported Media Type”响应。
我的理解是,这不受开箱即用的支持,并且需要注册一个类似于此处完成方式的功能: https://jersey.java.net/documentation/latest/media.html
【问题讨论】:
标签: java rest jersey javabeans