Java 使用Axis調(diào)用WebService的示例代碼
更新時間:2020年09月28日 09:47:19 作者:H.U.C-王子
這篇文章主要介紹了Java 使用Axis調(diào)用WebService的示例代碼,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**
* @ClassName: TestAxis
* @Description: TODO(描述這個類的作用)
* @author huc
*
*/
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{
//調(diào)用webservice地址
String url = "https://www.****.com/services/NciicServices"; //如果url地址中有中文參數(shù),要注意應(yīng)單獨將中文部分進行編碼操作后再與URL字符串拼接到一起,編碼方式為:URLEncoder.encode("中文部分", "utf-8");
//調(diào)用方法名
String method="nciicCheck";
Service service = new Service();
//通過service創(chuàng)建call對象
Call call = (Call) service.createCall(); //call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS); 設(shè)置soap12協(xié)議方式調(diào)用
//設(shè)置服務(wù)地址
call.setTargetEndpointAddress(new java.net.URL(url));
//設(shè)置調(diào)用方法
call.setOperationName(method);
call.setUseSOAPAction(true);
//添加方法的參數(shù),有幾個添加幾個
//inLicense是參數(shù)名,XSD_STRING是參數(shù)類型,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.setOperationName(new QName("http://bussiness.***.com", "callPT")); //call.addParameter(new QName("http://bussiness.***.com","xmlData"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); //call.addParameter(new QName("http://bussiness.***.com","methodName"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
//設(shè)置返回類型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); //解決錯誤:服務(wù)器未能識別 HTTP 頭 SOAPAction 的值 call.setUseSOAPAction(true); call.setSOAPActionURI(targetNamespace + operationName);
Object ret= null;
try{
//使用invoke調(diào)用方法,Object數(shù)據(jù)放傳入的參數(shù)值
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();
}
}
}
下面是輸出結(jié)果信息:
--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 使用Axis調(diào)用WebService的示例代碼的詳細內(nèi)容,更多關(guān)于Java 使用Axis調(diào)用WebService的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java 中的vector和list的區(qū)別和使用實例詳解
在大家還沒有了解vector,list,deque的知識之前,我先給大家介紹下stl,本文重點給大家介紹vector和list的區(qū)別及使用,感興趣的的朋友一起看看吧2017-09-09
springboot中將日志信息存儲在catalina.base中過程解析
這篇文章主要介紹了springboot中將日志信息存儲在catalina.base中過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09
spring和quartz整合,并簡單調(diào)用(實例講解)
下面小編就為大家?guī)硪黄猻pring和quartz整合,并簡單調(diào)用(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
一文詳解Java如何使用commons-csv搞定CSV文件操作
在?Java?開發(fā)中,處理?CSV(逗號分隔值)文件是一項常見的任務(wù),本文將利用Apache?Commons?CSV?庫實現(xiàn)讀取,寫入和操作CSV文件,希望對大家有所幫助2025-02-02
詳解Java的TCP/IP編程學(xué)習(xí)--基于定界符的成幀
這篇文章主要介紹了Java的TCP/IP編程學(xué)習(xí)--基于定界符的成幀,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
springboot啟動過程中常用的回調(diào)示例詳解
springboot提供非常豐富回調(diào)接口,利用這些接口可以做非常多的事情,本文通過實例代碼給大家介紹springboot啟動過程中常用的回調(diào)知識感興趣的朋友跟隨小編一起看看吧2022-01-01

