Tengo un problema al intentar configurar @ResponseBody para devolver una colección. Tengo JAXB jar en classpath y no configuré ningún ContentNegotiatingViewResolver.Spring MVC @ResponseBody que devuelve un mapa produce "Error 406 NO ACEPTABLE"
Ésta es mi objeto simple: -
@XmlRootElement(name = "test-object")
@XmlAccessorType(XmlAccessType.FIELD)
public class TestObject implements Serializable {
@XmlAttribute
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
me escribió una prueba simple que devuelve un único objeto ... esto funciona sin problema, y yo soy capaz de ver el XML generado: -
@RequestMapping(value = "one", method = RequestMethod.GET)
public @ResponseBody TestObject getSingleObject() {
TestObject obj = new TestObject();
obj.setId(1);
return obj;
}
Lo que realmente quiero es devolver una lista de objetos. Después de leer todo, parece que la manera de hacerlo es colocar la lista en un mapa y devolver el Mapa: -
@RequestMapping(value = "all", method = RequestMethod.GET)
public @ResponseBody Map<String, ? extends Object> getAllObjects() {
TestObject obj1 = new TestObject();
obj1.setId(1);
TestObject obj2 = new TestObject();
obj2.setId(2);
List<TestObject> list = Arrays.asList(obj1, obj2);
return Collections.singletonMap("all-objects", list);
}
Cuando ejecuto lo anterior, estoy recibiendo "Error 406 No Aceptable".
¿Qué hice mal aquí? Me estoy ejecutando en Jetty 6.1 si eso hace la diferencia.
Gracias.
¿funcionó alguna de las soluciones aquí? – Ram