栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA返回soap协议的xml

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA返回soap协议的xml

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

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

1.把文本转对象

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

2.改造对象

属性的使用 @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 "";
  }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号