Java解析String类型的SOAPXML

本文记录了在Java中如何处理HttpPost请求,调用接收String类型SOAP XML的WebService接口。当接口规范明确后,通过认证和解析实现调用。
摘要由CSDN通过智能技术生成

最近业务需求,需要HttpPost请求调用WebService接口,
其消息格式为String类型的SOAPXML,以下为解决方式,特此记录一下

 public class SoapUtil {
   
 13     
 14     /**
 15      * 解析soapXML
 16      * @param soapXML
 17      * @return
 18      */
 19     public static WebserviceResultBean parseSoapMessage(String soapXML) {
   
 20         WebserviceResultBean resultBean = new WebserviceResultBean();
 21         try {
   
 22             SOAPMessage msg = formatSoapString(soapXML);
 23             SOAPBody body = msg.getSOAPBody();
 24             Iterator<SOAPElement> iterator = body.getChildElements();
 25             parse(iterator, resultBean);
 26         } catch (Exception e) {
   
 27             e.printStackTrace();
 28         }
 29         return resultBean;
 30     }
 31 
 32     public static void main(String[] args) {
   
 33         System.out.println("开始解析soap...");
 34 
 35         String deptXML = "<SOAP:Envelope xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP:Header/><SOAP:Body><ns:OP_SDMS_Consume_Material_SynResponse xmlns:ns=\"http://toSDMS.material.service.ffcs.com\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"><ns:return><ns:BASEINFO><MSGID>?</MSGID><PMSGID>?</PMSGID><SENDTIME>20140212094609</SENDTIME><S_PROVINCE>?</S_PROVINCE><S_SYSTEM>?</S_SYSTEM><SERVICENAME>?</SERVICENAME><T_PROVINCE>?</T_PROVINCE><T_SYSTEM>?</T_SYSTEM><RETRY>?</RETRY></ns:BASEINFO><ns:MESSAGE><RESULT>E</RESULT><REMARK/><XMLDATA><![CDATA[<response><RESULT>E</RESULT><MESSAGE>平台系统处理时发生异常!保存接口接收数据出错!</MESSAGE></response>]]></XMLDATA></ns:MESSAGE></ns:return></ns:OP_SDMS_Consume_Material_SynResponse></SOAP:Body></SOAP:Envelope>";
 36         WebserviceResultBean ret = parseSoapMessage(deptXML);
 37         try {
   
 38             SOAPMessage msg = formatSoapString(deptXML);
 39             SOAPBody body = msg.getSOAPBody();
 40             Iterator<SOAPElement> iterator = body.getChildElements();
 41             PrintBody(iterator, null);
 42         } catch (Exception e) {
   
 43             e.printStackTrace();
 44         }
 45 
 46         System.out.println("解析soap结束...");
 47     }
 48 
 49     /**
 50      * 把soap字符串格式化为SOAPMessage
 51      * 
 52      * @param soapString
 53      * @return
 54      * @see [类、类#方法、类#成员]
 55      */
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值