创建了一个spring boot rest服务,它接受XML作为请求并将其转换为对象,然后将其插入到数据库中。我使用Jackson dataformat依赖项直接将xml请求转换为对象但收到错误。
控制器类如下
@RequestMapping(value = "/getRequestData",method=RequestMethod.POST,
produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE},consumes={MediaType.APPLICATION_XML_VALUE})
public ResponseEntity<?> putDataIntoDatabase(@RequestBody FirstRequestorBean bean) {
logger.info(bean.getId());
return new ResponseEntity<String>(HttpStatus.OK);
}
和bean类
public class FirstRequestorBean {
private String name;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
这里传递的xml是
<?xml version="1.0" encoding="UTF-8"?>
<FirstRequestorBean>
<name>Akhil</name>
<id>1</id>
</FirstRequestorBean>
获取不受支持的媒体类型例外。
有人可以指出如何解决这个问题
您的发布请求将具有“内容类型”,需要与您的请求映射的“消耗”参数匹配。
对于XML,有两种类型“application / xml”和“text / xml”,接受这两种类型是很好的做法,(MediaType.APPLICATION_XML_VALUE
和MediaType.TEXT_XML_VALUE
)。
另外你有:produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE}
这是你的返回类型,你只需要在实际返回一些内容时定义它,看到只是设置状态代码然后应该删除它。