gpt4 book ai didi

Spring MVC 4 响应主体序列化适用于 JSON 但不适用于 XML

转载 作者:行者123 更新时间:2023-12-04 18:02:25 24 4
gpt4 key购买 nike

我正在使用 Spring 4 设置 REST API。HTTP 消息转换器默认用于 JSON 和 XML。我尝试设置两个端点,一个用于返回 JSON,另一个用于返回 XML。 JSON 对象似乎按预期返回,但是当我尝试访问 xml 时,我以 406 异常结束,

The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

我已经包含了 JSON 和 XML 的 Maven 依赖项。下面是 pom.xml 的片段,

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>

<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb-api.version}</version>
</dependency>

下面是 Controller 代码,

@RestController
@RequestMapping(value="/employee")
public class HelloController {

@RequestMapping(method=RequestMethod.GET , produces="application/json",value="/hello.json")
public List<Employee> getEmployeeJson(){

Employee emp = new Employee();
emp.setId(1);
emp.setName("x");

Employee emp1 = new Employee();
emp1.setId(2);
emp1.setName("y");

List<Employee> res = new ArrayList<Employee>();
res.add(emp);
res.add(emp1);

return res;
}

@RequestMapping(method=RequestMethod.GET , produces="application/xml",value="/hello.xml")
public List<Employee> getEmployeeXml(){

Employee emp = new Employee();
emp.setId(1);
emp.setName("x");

Employee emp1 = new Employee();
emp1.setId(2);
emp1.setName("y");

List<Employee> res = new ArrayList<Employee>();
res.add(emp);
res.add(emp1);

return res;
}

}

请分享您对此处遗漏的想法

最佳答案

根据documentation您应该添加 jackson-dataformat-xml 依赖项以启用响应主体 XML 序列化。如果您使用的是 Maven,只需添加:

<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>

关于Spring MVC 4 响应主体序列化适用于 JSON 但不适用于 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com