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转换为Java实体类的基本原理是通过解析XML文档,创建对应的Java对象。Java中常用的库有JAXB(Java Architecture for XML Binding)和DOM4J等。JAXB是Java SE的一部分,可以自动将XML文档映射到Java对象,...
在Java编程中,有时我们需要将实体类对象转换成XML格式的字符串,这在数据交换...总的来说,Java提供了一套完整的工具链来帮助开发者将实体类转换为XML格式的字符串,这使得在Java应用程序中处理XML数据变得更加便捷。
1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以被SAXBuilder读取的形式。接着,使用`InputSource`封装`StringReader`,以便SAXBuilder能够正确识别并解析XML数据。 2...
本篇文章将详细探讨如何使用“soap-build”工具来生成SOAP接口请求报文,以及其与流行的SOAP测试工具soap-ui的关联。 首先,让我们理解SOAP接口请求报文的构成。一个标准的SOAP报文包含三个主要部分:Envelope、...
3. **转换为字符串**:为了发送或保存,我们需要将`Document`对象转换为字符串,这通常通过`TransformerFactory`和`Transformer`实现。 ```java TransformerFactory transformerFactory = TransformerFactory.new...
至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...
本教程将围绕标题和描述中的关键知识点展开,包括如何拼接SOAP请求,判断SOAP连接成功,获取接口信息,解析SOAP响应报文,并将解析后的数据转换为Java实体。 首先,我们需要理解SOAP的基本结构。一个基本的SOAP消息...
将XML数据转换为Java实体类(Bean)以及将实体类转换回XML是两个重要的操作,这对于数据的序列化和反序列化至关重要。下面将详细解释这两个过程以及涉及的相关知识点。 首先,XML转实体类的过程通常涉及到Java的...
// 将XML转换为字符串 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc);...
总结来说,这个压缩包提供的工具和代码可能包括XML解析器、实体类生成器以及转换逻辑,帮助开发者便捷地在XML报文和Java对象之间进行转换。在实际项目中,这样的功能对于处理与XML相关的网络通信或数据存储至关重要...
Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本案例主要关注如何使用Java来实现SOAP请求并获取响应,具体我们...
标题中的"mybatis自动生成Java实体类和映射文件的自动生成类工具"指的就是这样的一个辅助开发工具,它可以分析数据库表结构,并根据表信息自动生成对应的Java实体类和Mapper接口及其XML配置文件。 在Java开发中,...
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解析...
在soap2String()方法中,首先判断了输入的Source对象是否为空,如果不为空则使用TransformerFactory和Transformer对象将SOAP报文转换为字符串形式。 在整个过程中,JAVA的SOAP API提供了许多有用的类和方法,用于...
本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...
>`开头,这是一个标准的XML声明,指明了文档的版本和字符编码。 - **设置HTTP请求**:使用`URL`对象指向目标服务器的URL,然后通过`openConnection()`方法获取`HttpURLConnection`实例。设置`setDoOutput(true)`表示...
本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...
实体类和SQL生成工具是一种高效开发辅助工具,它能够帮助程序员快速地生成各种编程语言(如VB、C#、Java)中的实体类,并自动生成对应的SQL语句,极大地提高了开发效率,减少了手动编写代码的工作量。 实体类是面向...
在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...