我在試圖建立到@ResponseBody返回集合的問題。我在classpath中有JAXB jar,並且沒有設置任何ContentNegotiatingViewResolver。Spring MVC的返回@ResponseBody一個地圖產生「錯誤406不可接受」
這是我簡單的對象: -
@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;
}
}
我寫了一個簡單的測試,它返回一個對象......這個工作沒有問題,我可以看到生成的XML: -
@RequestMapping(value = "one", method = RequestMethod.GET)
public @ResponseBody TestObject getSingleObject() {
TestObject obj = new TestObject();
obj.setId(1);
return obj;
}
我真正想要的是返回對象的列表。閱讀周圍後,好像這樣做的方式是將名單地圖,返回地圖: -
@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);
}
當我執行上面的,我得到「錯誤406不可接受」。
我做了什麼錯在這裏?如果這有所作爲,我將在Jetty 6.1上運行。
謝謝。
做了這裏的任何解決方案工作? – Ram