`
tangkuo
  • 浏览: 100986 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

JaxbUtil

 
阅读更多
/**
* Copyright (c) 2011-2015 All Rights Reserved.
*/
package com.dinpay.dpp.csp.instruction.comm.util.spdb;

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

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

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* JavaBean与XML转换工具类
*
* @author tangkuo
*
*/
public class JaxbUtil {

private final static Logger log = LoggerFactory.getLogger(JaxbUtil.class);

/**
* JavaBean转换成xml
* 默认编码UTF-8
* @param obj
* @param writer
* @return
*/
public static String convertToXml(Object obj) {
return convertToXml(obj, "UTF-8");
}

/**
* JavaBean转换成xml
* @param obj
* @param encoding
* @return
*/
public static String convertToXml(Object obj, String encoding) {
try {
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);

StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
return writer.toString();
} catch (Exception e) {
log.error(e.getMessage(), e);
return StringUtils.EMPTY;
}
}

/**
* xml转换成JavaBean
* @param xml
* @param c
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T convertToJavaBean(String xml, Class<T> c) {
try {
JAXBContext context = JAXBContext.newInstance(c);
Unmarshaller unmarshaller = context.createUnmarshaller();
return (T) unmarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
log.error(e.getMessage(), e);
return null;
}
}

}



package com.dinpay.dpp.csp.instruction.vo;

import java.io.Serializable;

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

/**
* 浦发银行交易接口输入输出参数实体类
*
* @author tangkuo
*
*/

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="packet")
public class SpdbPacketVo implements Serializable{
private static final long serialVersionUID = 1L;

/*
* 5.1.1 输入要素:
* https页面方式和https指令方式下向网关发送交易时,都必须提供3个基本要素:transName、Plain、Signature。
* 其中,transName是交易名;Plain是交易字段拼装的明文,支付、撤销、退货的Plain的组织方式类似;
* Signature是对Plain的签名。
*/

@XmlElement(name="transName")
private  String transName;//消费交易类型

@XmlElement(name="Plain")
private  String plain;//商户订单数据组成的原始数据字符串

@XmlElement(name="Signature")
private  String signature;//原始数据字符串的签名

/*
* 5.1.2 输出要素: 支付网关返回商户的信息,是以XML报文的组织结构的一段内容
* 交易正常返回:
* <packet><transName>交易名称</transName><Plain>
* 交易请求明文</Plain><Signature>交易请求明文的签名</Signature></packet>
* 交易出错返回:
* <packet><ErrorCode>错误码</ErrorCode><ErrorMsg>错误信息</ErrorMsg></packet>
*
*/

@XmlElement(name="ErrorCode")
private  String ErrorCode;//错误码

@XmlElement(name="ErrorMsg")
private  String ErrorMsg;//错误信息

/**
* 获取消费交易类型
* @return
*/
public String getTransName() {
return transName;
}

/**
* 设置消费交易类型
* @param transName
*/
public void setTransName(String transName) {
this.transName = transName;
}

/**
* 获取商户订单数据组成的原始数据字符串
* @return
*/
public String getPlain() {
return plain;
}

/**
* 设置商户订单数据组成的原始数据字符串
* @param plain
*/
public void setPlain(String plain) {
this.plain = plain;
}

/**
* 获取原始数据字符串的签名
* @return
*/
public String getSignature() {
return signature;
}

/**
* 设置原始数据字符串的签名
* @param signature
*/
public void setSignature(String signature) {
this.signature = signature;
}

/**
* 获取浦发银行返回的错误码信息
* @return
*/
public String getErrorCode() {
return ErrorCode;
}

/**
* 设置浦发银行返回的错误码信息
* @return
*/
public void setErrorCode(String errorCode) {
ErrorCode = errorCode;
}

/**
* 获取银行放返回的错误信息
* @return
*/
public String getErrorMsg() {
return ErrorMsg;
}

/**
* 设置错误信息值
* @return
*/
public void setErrorMsg(String errorMsg) {
ErrorMsg = errorMsg;
}




}

分享到:
评论

相关推荐

    JAXBUtil使用JAXB进行xml和bean互转

    本篇文章将深入探讨如何使用JAXBUtil来实现XML和bean之间的互转,并基于提供的文件`JaxbObjectAndXmlUtil.java`和`ReqMsBean.java`进行实例解析。 首先,我们来看`ReqMsBean.java`,这是一个简单的Java Bean定义,...

    JaxbUtil.zip_jaxb

    JAXBUtil.zip_jaxb这个压缩包包含了一些帮助类,用于实现XML与JavaBean之间的便捷转换。在实际开发中,这种功能非常常见,特别是在处理XML格式的数据时,如配置文件、数据交换或者网络通信等场景。 首先,我们来看`...

    JaxbUtil.java

    JAXB工具类,xml和java对象相互转换的工具类,支持List直接转xml

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    Java中的JAXB(Java Architecture for XML Binding)是一个用于在Java对象和XML文档之间进行映射的标准API。这个技术使得开发者可以方便地将XML数据转换为Java对象,反之亦然。在给定的压缩包文件中,可能包含了实现...

    JAXB jar包 工具

    Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,它允许程序开发者将XML文档和Java对象之间进行绑定,实现XML数据的解析、序列化以及对象的创建。JAXB提供了一种从XML Schema(XSD)到Java类...

    lightgbm模型保存为pmml文件 机器学习lgbm模型存为pmml文件 通过java调用jar

    Evaluator evaluator = EvaluatorFactory.newInstance().createEvaluator(JAXBUtil.unmarshalPMML(FileReader.class.getResourceAsStream("/path/to/model.pmml"))); // 准备输入数据 Map, Object&gt; inputs = new...

    jaxb最新版本2.2.6

    Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,用于在Java对象和XML文档之间进行数据绑定。它允许开发者将XML Schema定义的数据结构直接映射到Java类,从而简化了XML文档的处理。...

    使用JAXB(用于XML绑定的Java API)解决现实世界问题的7个步骤

    JAXB(Java Architecture for XML Binding)是Java平台上的一个标准API,用于在Java对象和XML文档之间进行数据绑定。这个强大的工具使得开发人员能够轻松地处理XML数据,无需手动解析XML文档或创建复杂的序列化代码...

    lightgbm_pmml_demo:从python导出的受过训练的lightgbm模型,以供Java调用

    JPMMLModel jpmmlModel = JAXBUtil.unmarshalPMMLResource(new File("lightgbm.pmml")); // 获取ModelManager,它是模型管理和评估的核心接口 PMMLManager modelManager = new PMMLManager(jpmmlModel); // ...

Global site tag (gtag.js) - Google Analytics