Spring MVC @ResponseBody возвращает список
Мы хотели бы создать «WebService», который возвращает список конкретных объектов. И мы хотели бы вызвать этот веб-сервис из другой Java-программы с помощью библиотеки Apache HTTP-клиентов.
В этот момент, если мы вызываем веб-сервис из Firefox, появляется страница с ошибкой 406.
Нужно ли использовать JSON или XML для передачи списка? Как это сделать и как получить список с помощью Apache http клиентов?
Спасибо.
[РЕДАКТИРОВАТЬ]
Единственное, что работает, - это создание некоторых сущностей с аннотациями JAXB для сериализации в XML.
@XmlRootElement(name = "person")
public class Person {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
@XmlRootElement(name = "persons")
public class PersonList {
@XmlElement(required = true)
public List<Person> persons;
public List<Person> getData() {
return persons;
}
public void setData(List<Person> persons) {
this.persons = persons;
}
}
@RequestMapping(value = "/hello.html", method = RequestMethod.GET, produces = "application/xml")
@ResponseBody
public ResponseEntity<PersonList> hello() {
PersonList test = new PersonList();
List<Person> rep = new ArrayList<Person>();
Person person1 = new Person();
person1.setId("1");
Person person2 = new Person();
person2.setId("2");
rep.add(person1);
rep.add(person2);
test.setData(rep);
// return test;
HttpHeaders responseHeaders = new HttpHeaders();
List<MediaType> medias = new ArrayList<MediaType>();
medias.add(MediaType.ALL);
responseHeaders.setAccept(medias);
return new ResponseEntity<PersonList>(test, responseHeaders, HttpStatus.OK);
}
Я пытался с производит и возвращает непосредственно объект, но все еще ошибка 406. XML + ResponseEntity работает.
Это очень странно, потому что я увидел очень простой пример, где объект преобразуется в json и появляется в веб-браузере.
Итак, теперь я должен понять, как получить ответ и преобразовать XML в сущности ...