繁体   English   中英

将Xml请求转换为对象Spring Boot

[英]Convert Xml request to Object Spring Boot

创建了一个spring boot rest服务,该服务接受XML作为请求并将其转换为对象,然后将其插入数据库。 我使用Jackson数据格式依赖项将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);
    }

和豆类

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>  

获取不支持的媒体类型异常。

有人可以指出如何解决问题

您的Post请求将具有“内容类型”,该内容类型必须与您的请求映射的“ consums”参数匹配。

对于XML,有两种类型:“ application / xml”和“ text / xml”(两种类型)( MediaType.APPLICATION_XML_VALUEMediaType.TEXT_XML_VALUE )。

此外,您还具有: produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE}这是您的返回类型,只需要在实际返回内容后定义它,就可以看到只设置了状态码,然后应将其删除。

  1. 添加MediaType.APPLICATION_XML_VALUE以在请求映射上接受XML形式的数据。 例如:-(此处应用程序接受JSON和XML格式作为请求)@PostMapping(value =“ / users / add”,消耗= {MediaType.APPLICATION_XML_VALUE,MediaType.APPLICATION_JSON_VALUE})
  2. @XmlRootElement批注添加到您的bean类
  3. 在请求的标题中添加适当的Content-Type(application / json或application / xml)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM