Java如何基于wsimport調(diào)用wcf接口
wcf接口是由.net提供的webservice接口,一般是使用wsdl文件的樣式發(fā)布,在wsdl文件中,包含該webservice暴露在外面可供使用的接口。
了解到的調(diào)用wfc接口方法有三種:
AXIS調(diào)用遠(yuǎn)程webservice SOAP調(diào)用遠(yuǎn)程webservice wsimport生成java代碼,調(diào)用接口在嘗試方法1、2多次失敗后,果斷放棄,選擇了簡單易上手的方法3。通過jdk6.0以上版本自帶的wsimport工具,即可根據(jù)wsdl文件生成相應(yīng)的類文件。將這些生成的文件放在相應(yīng)項(xiàng)目,就可以像調(diào)用本地的類一樣調(diào)用webservice提供給的方法了。
具體步驟:
1、通過wsimport命令生成java代碼,命令如下
wsimport ’http://XXX/BaseInfoService.svc?wsdl’ -s /XXX/proxy/source -d /XXX/proxy/class -p proxy
-d:指定.class文件的輸出目錄
-s:指定.java文件的輸出目錄
-p:定義生成類的包名,不定義的話有默認(rèn)包名
2、將生成文件放到項(xiàng)目中,創(chuàng)建調(diào)用類
public class TestWsimport{ public Map<String, String> push(ParamDTO params) { BaseInfoService client = new BaseInfoService(); // 將接口參數(shù)封裝在ParamDTO中,代碼更簡潔 String requestInputStream = JSON.toJSONString(params); String resultStr = client.getBasicHttpBindingIBaseInfoService() //需要調(diào)用的方法 .sendParams(requestInputStream); JSONObject resultObj = JSON.parseObject(resultStr); Integer success = resultObj.getInteger('Success'); if (success == 0) { Map<String, String> errorMap = Maps.newConcurrentMap(); String errorDesc = resultObj.getString('Body'); errorMap.put(clueInfo.getRequestObjectList().get(0).getClueCode(), errorDesc); return errorMap; } return null; } }
示例接口較簡單,只需要發(fā)送數(shù)據(jù)。不同的webservice接口生成的代碼會(huì)有出入,調(diào)用接口的代碼需要根據(jù)實(shí)際情況進(jìn)行調(diào)整。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. Android如何加載Base64編碼格式圖片3. 解決Android studio xml界面無法預(yù)覽問題4. 圖文詳解vue中proto文件的函數(shù)調(diào)用5. 什么是python的自省6. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)7. Vuex localStorage的具體使用8. php模擬實(shí)現(xiàn)斗地主發(fā)牌9. vue 使用localstorage實(shí)現(xiàn)面包屑的操作10. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備