`
shuai1234
  • 浏览: 972323 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

xml字符串和java实体类相互转换JaxbXmlUtil工具类 附java实体类生成soap接口报文案例

    博客分类:
  • java
 
阅读更多

JaxbXmlUtil工具类

复制代码
package com.aiait.ivs.util;

import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;





/**
 * Jaxb工具类 xml和java类相互转换
 *
 * @author sunjianbo
 * @date 2017年4月17日
 */
public class JaxbXmlUtil {

    public static final String DEFAULT_ENCODING = "UTF-8";

    /**
     * pojo转换成xml 默认编码UTF-8
     *
     * @param obj 待转化的对象
     * @return xml格式字符串
     * @throws Exception JAXBException
     */
    public static String convertToXml(Object obj) throws Exception {
        return convertToXml(obj, DEFAULT_ENCODING);
    }

    /**
     * pojo转换成xml
     *
     * @param obj 待转化的对象
     * @param encoding 编码
     * @return xml格式字符串
     * @throws Exception JAXBException
     */
    public static String convertToXml(Object obj, String encoding) throws Exception {
        String result = null;

        JAXBContext context = JAXBContext.newInstance(obj.getClass());
        Marshaller marshaller = context.createMarshaller();
        // 指定是否使用换行和缩排对已编组 XML 数据进行格式化的属性名称。
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);

        StringWriter writer = new StringWriter();
        marshaller.marshal(obj, writer);
        result = writer.toString();

        return result;
    }

    /**
     * xml转换成JavaBean
     *
     * @param xml xml格式字符串
     * @param t 待转化的对象
     * @return 转化后的对象
     * @throws Exception JAXBException
     */
    @SuppressWarnings("unchecked")
    public static <T> T convertToJavaBean(String xml, Class<T> t) throws Exception {
        T obj = null;
        JAXBContext context = JAXBContext.newInstance(t);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        obj = (T) unmarshaller.unmarshal(new StringReader(xml));
        return obj;
    }
}
复制代码

生成xml的实体类

复制代码
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "header",
        "body"
    })
@XmlRootElement(name = "soapenv:Envelope")
public class RequestEntity {

    @XmlAttribute(name="xmlns:soapenv")
    protected String soapenv="http://schemas.xmlsoap.org/soap/envelope/";
    @XmlAttribute(name="xmlns:eapp")
    protected String eapp="http://wx.gmw9.com";
    
    @XmlAttribute(name="xmlns:bus")
    protected String bus=null;
    
    
    
    @XmlElement(required = true,name="soapenv:Header")
    protected RequestHeader header;
    
    @XmlElement(required = true,name="soapenv:Body")
    protected RequestBody body;

    
    //get set方法省略

    
}




import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "soapenv:Body")
public class RequestBody {

    
    @XmlElement(required = true,name="eapp:aaaaaa")
    public BodyContent aaaaaaa
    //get set方法省略
    
}




import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "aa1",
    "aa2",
    "aa3"
   
})
@XmlRootElement(name = "eapp:aaaaaa")
public class BodyContent {

          @XmlElement(required = true,name="eapp:compNo")
        protected String aa1;
        @XmlElement(required = true,name="eapp:agentCode")
        protected String aa2;
        @XmlElement(required = true,name="eapp:eAppId")
        protected String aa3;              
        //get set方法省略
    
}
复制代码

生成的xml如下

复制代码
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eapp="http://wx.gmw9.com">
   <soapenv:Header>
      
   </soapenv:Header>
   <soapenv:Body>
      <eapp:aaaaaa>
         <eapp:aa1>041</eapp:aa1>
         <eapp:aa2>5000</eapp:aa2>
         <eapp:aa3>?</eapp:aa3>
         
      </eapp:aaaaaa>
   </soapenv:Body>
</soapenv:Envelope>
复制代码
分享到:
评论

相关推荐

    xml与实体类转换工具

    首先,XML转换为Java实体类的基本原理是通过解析XML文档,创建对应的Java对象。Java中常用的库有JAXB(Java Architecture for XML Binding)和DOM4J等。JAXB是Java SE的一部分,可以自动将XML文档映射到Java对象,...

    实体类生成XML格式字符串

    在Java编程中,有时我们需要将实体类对象转换成XML格式的字符串,这在数据交换...总的来说,Java提供了一套完整的工具链来帮助开发者将实体类转换为XML格式的字符串,这使得在Java应用程序中处理XML数据变得更加便捷。

    java解析xml字符串

    1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以被SAXBuilder读取的形式。接着,使用`InputSource`封装`StringReader`,以便SAXBuilder能够正确识别并解析XML数据。 2...

    soap-build生成Soap接口请求报文

    本篇文章将详细探讨如何使用“soap-build”工具来生成SOAP接口请求报文,以及其与流行的SOAP测试工具soap-ui的关联。 首先,让我们理解SOAP接口请求报文的构成。一个标准的SOAP报文包含三个主要部分:Envelope、...

    java 通过模板生成 xml,发送报文

    3. **转换为字符串**:为了发送或保存,我们需要将`Document`对象转换为字符串,这通常通过`TransformerFactory`和`Transformer`实现。 ```java TransformerFactory transformerFactory = TransformerFactory.new...

    java 中HttpClient传输xml字符串实例详解

    至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...

    拼接soap,判断soap是否连接成功,返回接口的信息,解析soap报文,解析后的soap转成实体

    本教程将围绕标题和描述中的关键知识点展开,包括如何拼接SOAP请求,判断SOAP连接成功,获取接口信息,解析SOAP响应报文,并将解析后的数据转换为Java实体。 首先,我们需要理解SOAP的基本结构。一个基本的SOAP消息...

    任意XML转实体类 实体类 转XML 方法 JAVA

    将XML数据转换为Java实体类(Bean)以及将实体类转换回XML是两个重要的操作,这对于数据的序列化和反序列化至关重要。下面将详细解释这两个过程以及涉及的相关知识点。 首先,XML转实体类的过程通常涉及到Java的...

    java http 发送xml报文(java发送xml报文实例+参数)

    // 将XML转换为字符串 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc);...

    报文xml到java的相互,里面有说明文档!

    总结来说,这个压缩包提供的工具和代码可能包括XML解析器、实体类生成器以及转换逻辑,帮助开发者便捷地在XML报文和Java对象之间进行转换。在实际项目中,这样的功能对于处理与XML相关的网络通信或数据存储至关重要...

    java调用soap接口案例

    Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本案例主要关注如何使用Java来实现SOAP请求并获取响应,具体我们...

    mybatis自动生成Java实体类和映射文件的自动生成类工具

    标题中的"mybatis自动生成Java实体类和映射文件的自动生成类工具"指的就是这样的一个辅助开发工具,它可以分析数据库表结构,并根据表信息自动生成对应的Java实体类和Mapper接口及其XML配置文件。 在Java开发中,...

    XML文件与实体类的互相转换

    XML文件与实体类的互相转换是软件开发中的一种常见需求,特别是在调用别的平台接口时,通常都是返回XML数据,然后需要将这些数据转换成实体,以便于更方便的操作。下面将详细介绍XML文件与实体类的互相转换的知识点...

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    JAVA输出soap报文[参考].pdf

    在soap2String()方法中,首先判断了输入的Source对象是否为空,如果不为空则使用TransformerFactory和Transformer对象将SOAP报文转换为字符串形式。 在整个过程中,JAVA的SOAP API提供了许多有用的类和方法,用于...

    java的xml和json相互转换工具类,亲测直接用

    本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...

    java http 发送xml报文

    &gt;`开头,这是一个标准的XML声明,指明了文档的版本和字符编码。 - **设置HTTP请求**:使用`URL`对象指向目标服务器的URL,然后通过`openConnection()`方法获取`HttpURLConnection`实例。设置`setDoOutput(true)`表示...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    实体类&SQL生成工具

    实体类和SQL生成工具是一种高效开发辅助工具,它能够帮助程序员快速地生成各种编程语言(如VB、C#、Java)中的实体类,并自动生成对应的SQL语句,极大地提高了开发效率,减少了手动编写代码的工作量。 实体类是面向...

    java对象转换为json字符串或字符串数组

    在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

Global site tag (gtag.js) - Google Analytics