Java調用WebService之Axis實現
阿新 • • 發佈:2018-08-26
obj .net return div 創建 xmlns lns services inf
import org.apache.axis.client.Call; import org.apache.axis.client.Service; /** * @ClassName: TestAxis * @Description: TODO(描述這個類的作用) * @author Roy_70 * @date 2017年4月18日 上午9:16:26 * */ public class TestAxis { public static void main(String []args){ String inConditions = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ROWS><INFO><SBM>*</SBM></INFO><ROW><GMSFHM>公民身份號碼</GMSFHM><XM>姓名</XM></ROW><ROW><GMSFHM>110101******</GMSFHM><XM>李聞</XM><FSD>100600</FSD><YWLX>個人貸款</YWLX></ROW><ROW><GMSFHM>3624221952123***</GMSFHM><XM>李一聞</XM><FSD>100600</FSD><YWLX>個人貸款</YWLX></ROW><ROW><GMSFHM>1234********</GMSFHM><XM>王龍</XM><FSD>100600</FSD><YWLX>銀行開戶</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>個人車貸</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX></YWLX></ROW><ROW><GMSFHM>230602***</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>個人車貸</YWLX></ROW></ROWS>"; String inLicense= "********"; try{ //調用webservice地址 String url = "https://www.****.com/services/NciicServices"; //調用方法名 String method="nciicCheck"; Service service = new Service(); //通過service創建call對象Call call = (Call) service.createCall(); //設置服務地址 call.setTargetEndpointAddress(new java.net.URL(url)); //設置調用方法 call.setOperationName(method); call.setUseSOAPAction(true); //添加方法的參數,有幾個添加幾個//inLicense是參數名,XSD_STRING是參數類型,IN代表傳入 call.addParameter("inLicense", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.addParameter("inConditions", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); //設置返回類型 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); Object ret= null; try{ //使用invoke調用方法,Object數據放傳入的參數值 ret = call.invoke(new Object[] {inLicense,inConditions}); }catch(Exception e){ e.printStackTrace(); } //輸出SOAP請求報文 System.out.println("--SOAP Request: " + call.getMessageContext().getRequestMessage().getSOAPPartAsString()); //輸出SOAP返回報文 System.out.println("--SOAP Response: " + call.getResponseMessage().getSOAPPartAsString()); //輸出返回信息 System.out.println("result==="+ret.toString()); }catch(Exception e){ e.printStackTrace(); } } }
下面是輸出結果信息:
--SOAP Request: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><nciicCheck soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><inLicense xsi:type="xsd:string">*****</inLicense><inConditions xsi:type="xsd:string">*****</inConditions></nciicCheck></soapenv:Body></soapenv:Envelope> --SOAP Response: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:nciicCheckResponse xmlns:ns1="https://api.nciic.org.cn/NciicServices"><ns1:out><?xml version="1.0" encoding="UTF-8"?> <RESPONSE errorcode="-72" code="0" countrows="1"><ROWS><ROW><ErrorCode>-72</ErrorCode><ErrorMsg>IP地址受限</ErrorMsg></ROW></ROWS></RESPONSE></ns1:out></ns1:nciicCheckResponse></soap:Body></soap:Envelope> result===<?xml version="1.0" encoding="UTF-8"?> <RESPONSE errorcode="-72" code="0" countrows="1"><ROWS><ROW><ErrorCode>-72</ErrorCode><ErrorMsg>IP地址受限</ErrorMsg></ROW></ROWS></RESPONSE>
Java調用WebService之Axis實現