我正在使用Jersey为服务器组件创建REST Web服务.
我想在列表中序列化的JAXB注释对象如下所示:
@XmlRootElement(name = "distribution")
@XmlType(name = "tDistribution", propOrder = {
"id", "name"
})
public class XMLDistribution {
private String id;
private String name;
// no-args constructor, getters, setters, etc
}
Run Code Online (Sandbox Code Playgroud)
我有一个REST资源来检索一个看起来像这样的发行版:
@Path("/distribution/{id: [1-9][0-9]*}")
public class RESTDistribution {
@GET
@Produces("application/json")
public XMLDistribution retrieve(@PathParam("id") String id) {
return retrieveDistribution(Long.parseLong(id));
}
// business logic (retrieveDistribution(long))
}
Run Code Online (Sandbox Code Playgroud)
我还有一个REST资源来检索所有发行版的列表,如下所示:
@Path("/distributions")
public class RESTDistributions {
@GET
@Produces("application/json")
public List<XMLDistribution> retrieveAll() {
return retrieveDistributions();
}
// business logic (retrieveDistributions())
}
Run Code Online (Sandbox Code Playgroud)
我使用ContextResolver来自定义JAXB序列化,当前配置如下:
@Provider
@Produces("application/json")
public class …Run Code Online (Sandbox Code Playgroud)