Java如何基于wsimport調(diào)用wcf接口
wcf接口是由.net提供的webservice接口,一般是使用wsdl文件的樣式發(fā)布,在wsdl文件中,包含該webservice暴露在外面可供使用的接口。
了解到的調(diào)用wfc接口方法有三種:
- AXIS調(diào)用遠程webservice
- SOAP調(diào)用遠程webservice
- wsimport生成java代碼,調(diào)用接口
在嘗試方法1、2多次失敗后,果斷放棄,選擇了簡單易上手的方法3。通過jdk6.0以上版本自帶的wsimport工具,即可根據(jù)wsdl文件生成相應(yīng)的類文件。將這些生成的文件放在相應(yī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:定義生成類的包名,不定義的話有默認包名
2、將生成文件放到項目中,創(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接口生成的代碼會有出入,調(diào)用接口的代碼需要根據(jù)實際情況進行調(diào)整。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot數(shù)據(jù)響應(yīng)問題實例詳解
這篇文章主要給大家介紹了關(guān)于Spring?Boot數(shù)據(jù)響應(yīng)問題的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2022-03-03Springboot+Mybatis中typeAliasesPackage正則掃描實現(xiàn)方式
這篇文章主要介紹了Springboot+Mybatis中typeAliasesPackage正則掃描實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07生產(chǎn)者消費者模型ThreadLocal原理及實例詳解
這篇文章主要介紹了生產(chǎn)者消費者模型ThreadLocal原理及實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2020-09-09SpringBoot在 POM 中引入本地 JAR 包的方法
在開發(fā) Spring Boot 應(yīng)用程序時,您可能需要使用本地 JAR 包來添加自定義庫或功能,本文將介紹在 Spring Boot 項目的 POM 文件中如何引入本地 JAR 包,感興趣的朋友跟隨小編一起看看吧2023-08-08