【发布时间】:2017-11-10 06:36:15
【问题描述】:
我有一个@RestController,方法如下
@RequestMapping(path = "/thing", method = RequestMethod.GET,
produces = { MediaType.APPLICATION_XML_VALUE })
public List<Thing> listThings() {
return thingMapper.listThings();
}
但是当我在标头中使用 Accept:application/xml 发出 GET 请求时,响应的 Content-Length 为 0 并且它不会产生任何内容。我知道我的查询正在返回数据,如果我删除produces 属性并发出一个普通的get 请求,它会以json 形式返回数据......我只是无法让它生成xml。有什么想法吗?
编辑:我应该提到我正在使用 Spring Boot web starter
【问题讨论】:
-
因为@ResponseBody 注解注入了RestController,你没有得到xml。参考stackoverflow.com/questions/4856298/…
-
@harshavmb 需要详细说明吗?我并没有真正关注您发布的问题。我在我的方法中添加了
@ResponseBody,但结果是一样的 -
单独添加 @ResponseBody 是行不通的。您需要有一些 xml 解析器来编组和解组 Java 对象。 Mike 的回答也或多或少与此相关,但他有 Jackson xml 解析器。现在清除吗?
标签: java xml spring http spring-boot