来自spring启动应用程序的响应是JSON格式,而不是xml格式?
有spring启动应用程序(web+jpa) 所以,我有一个控制器:来自spring启动应用程序的响应是JSON格式,而不是xml格式?,xml,spring-boot,Xml,Spring Boot,有spring启动应用程序(web+jpa) 所以,我有一个控制器: @RestController public class CustomerController { @Autowired private CustomerService customerService; @RequestMapping(value = "/customers", method = RequestMethod.GET) public @ResponseBody List<Customer&
@RestController
public class CustomerController {
@Autowired
private CustomerService customerService;
@RequestMapping(value = "/customers", method = RequestMethod.GET)
public @ResponseBody List<Customer> findAllCustomers() {
return customerService.findAllCustomers();
}
@RequestMapping(value = "/customers", method = RequestMethod.POST)
public void addCustomer(@RequestBody Customer customer) {
customerService.addCustomer(customer);
}
以及绑定jpa和rest的服务层
当我提出要求时:
<customer>
<id>first</id>
<name>first name of metric</name>
</customer>
第一
公制名称
好的,客户添加到数据库中,但是,当我尝试获取所有客户时,响应是json格式的,但我希望是xml。如何解决此问题?将控制器方法标记为生成
application/xml
响应(products=MediaType.application\u xml\u VALUE
)。将控制器方法标记为生成application/xml
响应(products=MediaType.application\u xml\u VALUE
).我认为调用rest方法时使用了错误的接受类型
@ResponseBody
将根据外部客户端的功能和类路径上可用的库自动序列化返回值。如果Jackson在类路径上可用,并且客户机已经表示可以接受JSON,那么返回值将自动作为JSON发送。如果JRE为1.7或更高版本(这意味着JAXB包含在JRE中),并且客户机已表示可以接受XML,则返回值将自动作为XML发送。我认为您在调用rest方法时使用了错误的接受类型
@ResponseBody
将根据外部客户端的功能和类路径上可用的库自动序列化返回值。如果Jackson在类路径上可用,并且客户机已经表示可以接受JSON,那么返回值将自动作为JSON发送。如果JRE为1.7或更高版本(这意味着JAXB包含在JRE中),并且客户端已表示可以接受XML,则返回值将自动作为XML发送。通过添加
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
com.fasterxml.jackson.dataformat
jackson数据格式xml
通过添加
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
com.fasterxml.jackson.dataformat
jackson数据格式xml
HTTP状态406–不可接受描述根据请求中接收到的主动协商标头字段,目标资源没有用户代理可以接受的当前表示形式,服务器不愿意提供默认表示形式。请求标头应包含“Accept”其值为“application/xml”HTTP Status 406–不可接受的描述根据请求中接收到的主动协商标头字段,目标资源没有用户代理可以接受的当前表示形式,并且服务器不愿意提供默认表示。请求的标头应包含“Accept”,其值为“application/xml”。您不能公开xml列表。您还需要一个XML包装器。要返回的XML必须是有效的XML。不能公开XML列表。您还需要一个XML包装器。要返回的XML必须是有效的XML。如果我使用Postman进行测试,这对我意味着什么?添加标题内容类型:application/xml?您需要将请求标题Accepts set添加到application/xml。@VladislavOsipenkov如果我使用Postman进行测试,您可以在这里阅读完整答案,这对我意味着什么?添加标题内容类型:application/xml?您需要将请求标题Accepts set添加到application/xml。@VladislavOsipenkov您可以在这里阅读完整答案