Метод Rest: возвращает коллекцию XML вместо правильной группировки - PullRequest
0 голосов
/ 08 мая 2018

У меня есть следующий POJO:

@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();

Когда я выполняю вызов с использованием клиента 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>

Почему возвращаемый XML содержит <collection> вместо <Users>?

1 Ответ

0 голосов
/ 08 мая 2018

Оберните List<User> в отдельный объект и используйте @XMLElementWrapper в этой коллекции.

https://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/XmlElementWrapper.html

Я не проверял это, но вы можете попробовать использовать @XMLElementWrapper на getUsers()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...