@ResponseBody无法返回XML

时间:2014-01-29 11:29:12

标签: java xml spring

我有一个REST Web服务通过@responseBody返回一个int,我希望这个响应是XML格式的,尽管经过多次尝试,我还是不知道如何实现。

我的控制器如下:

@RequestMapping(value = "/UserByAppli", method = RequestMethod.GET)
@ResponseBody
public List<Application> getNbUserByAppli()
{
    return this.DAO.getNbUserByAppli();
}

我的应用程序对象:

@Component
@XmlRootElement(name="Application")
@XmlAccessorType(XmlAccessType.FIELD)
public class Application
{
    @XmlElement(name="Nom")
    private String name;

    @XmlElement(name="NbUtilisateurs")
    private int nbUsers;

    public Application()
    {

    }
    ...
}

它总是返回application / json,当我指定标题“Accept = application / xml”时,我得到一个带有org.springframework.web.HttpMediaTypeNotAcceptableException的406响应代码:在Spring日志中找不到可接受的表示。

将会感谢解释或搜索方向......

1 个答案:

答案 0 :(得分:0)

确保您的类路径中有JAXB2,并已注册相应的message converter并传递Accept: application/xml标头。此外,像M. Deinum建议的那样,为了使编组工作,您还需要将<Application />元素包装在另一个元素<Applications />中。