xml – Spring MVC @ResponseBody返回地图产生“错误406 NOT ACCEPTABLE”

我试图设置@ResponseBody来返回一个集合时遇到问题.我在类路径中有JAXB jar,我没有设置任何ContentNegotiatingViewResolver.

这是我简单的对象:

@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上运行.

谢谢.

您需要在pom.xml中添加这两个依赖项!
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-lgpl</artifactId>
    <version>1.8.1</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-lgpl</artifactId>
    <version>1.8.1</version>
</dependency>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇