SpringBoot項目使用?axis?調(diào)用webservice接口的實踐記錄
序
實際工作場景中會存在對接去很多系統(tǒng)的數(shù)據(jù)的任務(wù),數(shù)據(jù)對接呢 方式很多吧,接觸過 :
- http| https請求
- 數(shù)據(jù)庫視圖
- 數(shù)據(jù)庫存儲過程
- soap+xml工單...
然后這兩天接到一個關(guān)于webservice 數(shù)據(jù)接口的方式對接,說實話對于這個一臉懵逼,完全不知道是啥(聽一個比較年長的大哥說一些比較老的系統(tǒng)中喜歡使用這個進行數(shù)據(jù)對接)。所以只能學(xué)習(xí)一下然后進行搞了
WebService
定義

個人理解
通過度娘等方式,個人理解為變相的soap協(xié)議加xml工單處理,
實踐
webservice 常識
一個webservice 接口發(fā)布地址往往類似:
- qq 在線驗證接口:
www.webxml.com.cn/webservices…
- 其他可測試接口:
email電子郵箱地址接口: www.webxml.com.cn/WebServices…
全國天氣情況接口:
www.webxml.com.cn/WebServices…
qq在線接口驗證接口為例
在接口后面加:/wsdl www.webxml.com.cn/webservices…
訪問查看然后找到下圖中定義的內(nèi)容:注意使用關(guān)聯(lián)key找到對應(yīng)的必要使用的參數(shù)。

maven 使用 axis
應(yīng)用依賴(不可缺失必須)
<!-- https://mvnrepository.com/artifact/org.apache.axis/axis -->
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/wsdl4j/wsdl4j -->
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.2</version>
</dependency>
<!-- 解決cell 轉(zhuǎn)換問題-->
<!-- https://mvnrepository.com/artifact/javax.xml/jaxrpc-api -->
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc-api</artifactId>
<version>1.1</version>
</dependency>
<!-- 解析調(diào)用結(jié)果以及數(shù)據(jù)轉(zhuǎn)換包-->
<!-- https://mvnrepository.com/artifact/commons-discovery/commons-discovery -->
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
</dependency>代碼(粘貼可用)
@Test
public void testWebService() {
try {
//wsdl地址
String endpoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
//命名空間
String namespace = "http://WebXml.com.cn/";
//服務(wù)名
String serviceName = "qqOnlineWebService";
//方法名
String methodName = "qqCheckOnline";
//soapAction
String soapAction = "http://WebXml.com.cn/qqCheckOnline";
Service service = new Service();
Call call = (Call) service.createCall();
//設(shè)置響應(yīng)超時
call.setTimeout(3000);
//設(shè)置地址
call.setTargetEndpointAddress(new java.net.URL(endpoint));
//設(shè)置方法名
call.setOperationName(new QName(namespace, methodName));
//設(shè)置參數(shù)
call.addParameter(new QName(namespace, "qqCode")
, org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
//設(shè)置返回類型
call.setReturnType(XMLType.XSD_SCHEMA);
//啟用soap
call.setUseSOAPAction(true);
//設(shè)置soapAction
call.setSOAPActionURI(soapAction);
//設(shè)置服務(wù)名
SOAPService soapService = new SOAPService();
soapService.setName(serviceName);
call.setSOAPService(soapService);
Schema result = (Schema) call.invoke(new Object[]{"xxxxx"});
for (int i = 0; i < result.get_any().length; i++) {
System.out.println(result.get_any()[i]);
}
} catch (Exception e) {
log.error("ddd", e);
}
}對于以上代碼,我這邊吐槽一下,網(wǎng)上其實很多這個的例子但是實際調(diào)用的時候會出問題,注意點:
- 設(shè)置參數(shù)

- 獲取結(jié)果

xxxx需要填寫真實的QQ號碼
到此這篇關(guān)于SpringBoot項目使用 axis 調(diào)用webservice接口的文章就介紹到這了,更多相關(guān)SpringBoot調(diào)用webservice接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot整合cxf發(fā)布webservice以及調(diào)用的方法
- SpringBoot調(diào)用第三方WebService接口的操作技巧(.wsdl與.asmx類型)
- webservice實現(xiàn)springboot項目間接口調(diào)用與對象傳遞示例
- SpringBoot調(diào)用第三方WebService接口的兩種方法
- SpringBoot調(diào)用對方webService接口的幾種方法示例
- springboot調(diào)用webservice-soap接口的實現(xiàn)
- springboot使用webservice發(fā)布和調(diào)用接口的實例詳解
- SpringBoot調(diào)用WebService接口方法示例代碼
相關(guān)文章
java 定時同步數(shù)據(jù)的任務(wù)優(yōu)化
這篇文章主要介紹了java 定時同步數(shù)據(jù)的任務(wù)優(yōu)化,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-12-12
詳解Java接口簽名(Signature)實現(xiàn)方案
這篇文章主要介紹了Java接口簽名(Signature)實現(xiàn)方案?,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01
Springboot詳解RocketMQ實現(xiàn)消息發(fā)送與接收流程
這篇文章主要介紹了SpringBoot整合RocketMQ實現(xiàn)消息發(fā)送和接收功能,我們使用主流的SpringBoot框架整合RocketMQ來講解,使用方便快捷,本文分步驟給大家介紹的非常詳細,需要的朋友可以參考下2022-06-06
詳解SpringBoot?統(tǒng)一后端返回格式的方法
今天我們來聊一聊在基于SpringBoot前后端分離開發(fā)模式下,如何友好的返回統(tǒng)一的標(biāo)準(zhǔn)格式以及如何優(yōu)雅的處理全局異常,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-05-05
Java模擬死鎖發(fā)生之演繹哲學(xué)家進餐問題案例詳解
這篇文章主要介紹了Java模擬死鎖發(fā)生之演繹哲學(xué)家進餐問題,結(jié)合具體演繹哲學(xué)家進餐問題的案例形式詳細分析了死鎖機制與原理,需要的朋友可以參考下2019-10-10

