org.apache.axis.message.MessageElement []封装

wsdl生成客户端代码org.apache.axis.message.MessageElement []封装

1.调用第三方的webservice接口, 通过wsdl生成客户端代码,出现MessageElement []函数。

public void set_any(org.apache.axis.message.MessageElement [] _any) {
        this._any = _any;
    }

xml 样式

 <jet:Body>
   <params>
      <a>111</a>
      <b>222</b>
      <c>333</c>
      <d>4444</d>
   </params>
  </jet:Body>
  1. 在进行.MessageElement[]封装时,需要先把入参转换成样式
 <params>
      <a>111</a>
      <b>222</b>
      <c>333</c>
      <d>4444</d>
   </params>
  1. 如何将xml与对象进行转换,可以查看XStream

XStream是一个Java对象与XML互相转换的工具类库。

引入jar包

<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.4.8</version>
</dependency>

工具类,对象转成xml

/**
 * 将javabean和xml进行互转 *
 */
public class BeanAndXmlUtils {

   /**
	 * 根据javabean对象组装成xml
	 * @param t
	 * @return
	 */
	public static String beanToXml(Request t){
		XStream xstream = new XStream(new DomDriver("utf8", new XmlFriendlyNameCoder("-_", "_")));
		xstream.processAnnotations(t.getClass()); // 识别obj类中的注解
		String result = xstream.toXML(t); 
		return result;
	}
}
  1. MessageElement []封装
 MessageElement[] m = new MessageElement[1];
 Document XMLDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(BeanAndXmlUtils.beanToXml(parmas))));
            Element element2 = XMLDoc.getDocumentElement();
            m[0] = new MessageElement(element2);
            body.set_any(m);
	
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值