JAVA返回soap协议的xml

思路一:节点比较少的时候可以直接使用字符串拼接的方式

思路二:把文本转对象,再把对象转xml

1.把文本转对象

文本转对象(上一篇文章)

2.改造对象

JAVA返回soap协议的xml

属性的使用 @XmlAttribute

节点的使用@XmlElement

增加get,set ,有参无参构造方法

@XmlAccessorType

类级别的注解。定义这个类中的何种类型需要映射到XML。解释起来有点拗口,可以通过它的属性值更好理解这个参数的意义。

参数 value

参数 value 可以接受4个指定值,这几个值是枚举类型,方便调用:

  • XmlAccessType.FIELD:映射这个类中的所有字段到XML
  • XmlAccessType.PROPERTY:映射这个类中的属性(get/set方法)到XML
  • XmlAccessType.PUBLIC_MEMBER:将这个类中的所有public的field或property同时映射到XML(默认)
  • XmlAccessType.NONE:不映射

3.解析对象

import lombok.extern.slf4j.Slf4j;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import java.io.ByteArrayOutputStream;  

public static String AvaFailXml(EnvelopeDTO envelopeDTO) {

    try {
      // 获取上下文对象
      JAXBContext context = JAXBContext.newInstance(EnvelopeDTO.class);
      // 根据上下文获取marshaller对象
      Marshaller marshaller = context.createMarshaller();
      // 设置编码字符集
      marshaller.setProperty(Marshaller.JAXB_ENCODING, "GBK");
      ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
      marshaller.marshal(envelopeDTO, byteArrayOutputStream);
      // 生成XML字符串
      return new String(byteArrayOutputStream.toByteArray());
    } catch (Exception e) {
      log.error("XML:解析异常-----" + e.getMessage(), e);
    }
    return "";
  }

上一篇:restful接口介紹和使用


下一篇:接口测试面试题小结