Java Rest方法:返回XML集合而不是正确的分组
我有以下几点建议:Java Rest方法:返回XML集合而不是正确的分组,java,rest,Java,Rest,我有以下几点建议: @XmlRootElement(name = "User") public class User implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; private String profession; public User() { } pub
@XmlRootElement(name = "User")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String profession;
public User() {
}
public User(int id, String name, String profession) {
this.id = id;
this.name = name;
this.profession = profession;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getProfession() {
return profession;
}
public void setProfession(String profession) {
this.profession = profession;
}
服务定义为:
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
List<User> getUsers();
@GET
@路径(“/users”)
@生成(MediaType.APPLICATION\u XML)
列出getUsers();
当我使用REST客户机(Java或Postman)进行调用时,我会返回以下XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<collection>
<User>
<id>1</id>
<name>Mahesh</name>
<profession>Teacher</profession>
</User>
</collection>
1.
马赫什
老师
为什么返回的XML包含
而不是
?将列表
包装到单独的对象中,并在该集合上使用@xmlementwrapper
我没有测试,但您可以尝试在getUsers()
上将@xmlementwrapper
包装到单独的对象中,并在该集合上使用@xmlementwrapper
我没有测试,但您可以尝试在
getUsers()
上使用@xmlementwrapper
,我尝试在getUsers()
上的服务中添加@xmlementwrapper(name=“Users”)
,但它没有做任何事情。我不确定是否可以将列表
包装到另一个对象中,因为这是服务的一项要求。但您正在导出XML,因此如何实现这一点不是消费者关心的问题。因为在客户端中,我还需要能够传入GenericType()
以及如下内容:列表用户=客户端.target(端点).request(MediaType.APPLICATION_XML).get(new GenericType(){})
您可能也需要泛型根元素。我尝试在getUsers()
上的服务中添加@xmlementwrapper(name=“Users”)
,但它没有做任何事情。我不确定是否可以将列表
包装到另一个对象中,因为这是服务的一项要求。但您正在导出XML,因此如何实现这一点不是消费者关心的问题。因为在客户端中,我还需要能够传入GenericType()
以及如下内容:列表用户=客户端.target(端点).request(MediaType.APPLICATION_XML).get(new GenericType(){})代码>为此,您可能还需要通用根元素。