我有一个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日志中找不到可接受的表示。
将会感谢解释或搜索方向......
答案 0 :(得分:0)
确保您的类路径中有JAXB2,并已注册相应的message converter并传递Accept: application/xml
标头。此外,像M. Deinum建议的那样,为了使编组工作,您还需要将<Application />
元素包装在另一个元素<Applications />
中。