为了从 Resteasy 资源方法返回数据,您需要根据您要返回的内容做几件事。
@GET
@Produces({MediaType.APPLICATION_JSON,
MediaType.APPLICATION_XML})
public Response foo()
{
PersonObj obj = new PersonObj();
//Do something...
return Response.ok().entity(obj).build();
}
Resteasy 默认支持编组以下数据类型:
如果您希望支持的数据类型在此表中,那么这意味着它们受 JAXB 支持,您需要做的就是PersonObj
使用 JAXB 注释来注释您的类,以告诉它如何编组和解组对象。
@XmlRootElement
@XmlType(propOrder = {"firstName", "lastName"})
public class PersonObj
{
private String firstName;
private String lastName;
//Getters and Setters Removed For Brevity
}
如果您的内容类型不支持开箱即用怎么办?
如果您有一个想要编组的自定义内容类型,那么您需要创建一个MessageBodyWriter
实现来告诉 Resteasy 如何编组该类型。
Provider
@Produces({"application/x-mycustomtype"})
public class MyCustomTypeMessageBodyWriter implements MessageBodyWriter {
}
只需实现接口并像任何其他 Provider 一样注册它。
如果您想读取自定义内容类型,则需要实现自定义MessageBodyReader
来处理传入类型并将其添加到@Consumes
接收方法的注释中。