最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用idea生成webservice客戶端超詳解步驟(wsdl文件的使用)

 更新時間:2023年12月15日 11:14:07   作者:就是有緣人  
這篇文章主要給大家介紹了關(guān)于利用idea生成webservice客戶端超詳解步驟,第一次接觸webservice,從采坑到采坑,算是了解了一些,明白了一些,文中通過代碼以及圖文介紹的非常詳細,需要的朋友可以參考下

一、idea安裝webservice

1.點擊左上file,選中settings

2.下載Web Service

3.給此項目添加webservice

4.添加webservice的依賴

   <!--webservice的:TestCase需要的jar包-->     
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

二、利用idea根據(jù)wsdl文件自動生成webService客戶端代碼(然后比照著生成的測試類進行接口或方法的調(diào)用)

步驟:1.利用idea根據(jù)wsdl文件生成代碼,需要先將wsdl文件下載到本地

    2.下載時無必要要求,選擇Apache Axis,依賴需要自行百度搜索

    3.下載后需要比照著測試類代碼,寫調(diào)用接口或方法的代碼

好處:1.入?yún)⒌膮?shù)不需要自己進行封裝 , 特別容易寫

     2.返回值都被封裝好了 , 可以很容易就取到 , 不用自己寫解析代碼

1.打開tools -> WebServices -> Generate Java Code From Wsdl,按照圖中順序進行

2.按照圖中順序進行操作,最后點擊OK

3.必須勾選Generate TestCase

(會給出調(diào)用接口的例子,照著抄就可以實現(xiàn)調(diào)用指定接口)

4.2點擊ok報錯 , 就去百度下載Axis所需的依賴 , 第一次需額外下載一個插件(直接下載完就行)

只要不是報wsdl文件出錯 , 其他報錯后,只要能生成代碼 , 就可以使用

4.wsdl文件轉(zhuǎn)換生成Java代碼:成功

例子1:

 例子2:

5.如何使用生成的代碼

點擊打開名字中帶Test的這個類,找到你需要的方法,直接復制出來就能用

三、直接利用Axis2調(diào)用wsdl類型接口:

好處:不用利用idea根據(jù)wsdl自動生成webService客戶端代碼,然后再比照著測試類調(diào)用所需方法

壞處: 1.入?yún)⑿枰约哼M行參數(shù)的封裝 ,自己封裝參數(shù)有例子也不容易

2.如果需要獲取調(diào)用接口的返回值,則還不會解析返回的數(shù)據(jù),無法得到所需的參數(shù)(沒解析報文的例子,自己不會寫)

Axis2 調(diào)用接口示例:

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
 
 
public class Test {
    public static void test() {
        String userId = "123";
        String bindAccount = "123";
        RPCServiceClient serviceClient = null;
 
        OMFactory factory = OMAbstractFactory.getOMFactory();
        OMNamespace omDiag = factory.createOMNamespace("http://diagnosis.interfaces.axis2.osf.nort hbound.neal.cpehg.ums.zte.com", "diag");
        OMNamespace omXSD = factory.createOMNamespace("http://model.common.northbound.neal.cpehg. ums.zte.com/xsd", "xsd");
 
        try {
            serviceClient = new RPCServiceClient();
            Options options = serviceClient.getOptions();
// 指定調(diào)用WebService的URL
            EndpointReference targetEPR = new EndpointReference("http://10.46.60.200:9094/axis2/services/Cpe112Diag nosisWebServices?wsdl");
            options.setTo(targetEPR);
            options.setTimeOutInMilliSeconds(30000);
            options.setManageSession(true);
 
// 指定方法的參數(shù)值
            OMElement paramRequest = factory.createOMElement("request", omDiag);
            OMElement paramUserId = factory.createOMElement("userID", omXSD);
 
            paramUserId.setText(userId);
            OMElement paramBindAccount = factory.createOMElement("bindAccount", omXSD);
            paramBindAccount.setText(bindAccount);
            paramRequest.addChild(paramBindAccount);
            paramRequest.addChild(paramUserId);
 
            OMElement paramItemName = factory.createOMElement("itemName", omDiag);
            paramItemName.setText("cpehg.diagnosis.CpeBasicInfo");
 
            String method = "getParameterValuesFromDbAndCpeByItemName";
 
            OMElement data = factory.createOMElement(method, omXSD);
            data.setNamespace(omDiag);
            data.addChild(paramRequest);
            data.addChild(paramItemName);
 
            OMElement re = serviceClient.sendReceive(data);
// 處理返回數(shù)據(jù)
 
        } catch (AxisFault e) {
// 異常處理
            e.printStackTrace();
        } finally {
 
            try {
                if (serviceClient != null) serviceClient.cleanupTransport();
            } catch (AxisFault e) {
 
            }
        }
    }
}

總結(jié)

到此這篇關(guān)于利用idea生成webservice客戶端的文章就介紹到這了,更多相關(guān)idea生成webservice客戶端內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Stream distinct根據(jù)list某個字段去重的解決方案

    Stream distinct根據(jù)list某個字段去重的解決方案

    這篇文章主要介紹了Stream distinct根據(jù)list某個字段去重,stream的distinct去重方法,是根據(jù) Object.equals,和 Object.hashCode這兩個方法來判斷是否重復的,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Mybatis之Mapper動態(tài)代理實例解析

    Mybatis之Mapper動態(tài)代理實例解析

    這篇文章主要介紹了Mybatis之Mapper動態(tài)代理實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • mybatis插件實現(xiàn)自定義改寫表名實例代碼

    mybatis插件實現(xiàn)自定義改寫表名實例代碼

    在數(shù)據(jù)庫操作過程中,經(jīng)常有修改表名的需求,下面這篇文章主要給大家介紹了關(guān)于mybatis插件實現(xiàn)自定義改寫表名的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Spring如何實現(xiàn)輸出帶動態(tài)標簽的日志

    Spring如何實現(xiàn)輸出帶動態(tài)標簽的日志

    文章介紹了如何通過動態(tài)標簽日志實現(xiàn),解決了部分業(yè)務代碼在多個模塊中調(diào)用時日志無法直觀看出來源的問題,主要通過ThreadLocal存儲業(yè)務標簽,并在日志輸出時插入該標簽,實現(xiàn)日志的動態(tài)標簽功能,感興趣的朋友一起看看吧
    2024-12-12
  • Java中HTTP GET方法調(diào)用帶有body的問題解決

    Java中HTTP GET方法調(diào)用帶有body的問題解決

    這篇文章主要為大家詳細介紹了Java如何解決HTTP GET方法調(diào)用帶有body的問題,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2024-02-02
  • Java多線程:生產(chǎn)者與消費者案例

    Java多線程:生產(chǎn)者與消費者案例

    這篇文章主要介紹了Java并發(fā)編程中的生產(chǎn)者與消費者模型簡述,多線程并發(fā)是Java編程中最終要的部分之一,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • Spring Boot JPA訪問Mysql示例

    Spring Boot JPA訪問Mysql示例

    本篇文章主要介紹了Spring Boot JPA訪問Mysql示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 一文詳解Java線程安全的集合有哪些

    一文詳解Java線程安全的集合有哪些

    在Java中線程安全的集合類對于多線程編程至關(guān)重要,它們能夠確保在多個線程同時訪問集合時數(shù)據(jù)的一致性和完整性,下面這篇文章主要介紹了Java線程安全集合有哪些的相關(guān)資料,需要的朋友可以參考下
    2025-06-06
  • Spring中的動態(tài)數(shù)據(jù)源解讀

    Spring中的動態(tài)數(shù)據(jù)源解讀

    這篇文章主要介紹了關(guān)于Spring中的動態(tài)數(shù)據(jù)源解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java中l(wèi)ist集合的clear方法及空字符串的區(qū)別

    Java中l(wèi)ist集合的clear方法及空字符串的區(qū)別

    這篇文章主要介紹了Java中l(wèi)ist集合的clear方法及空字符串的區(qū)別,在使用list?結(jié)合的時候習慣了?list=null?;在創(chuàng)建這樣的方式,但是發(fā)現(xiàn)使用list的clear?方法很不錯,尤其是有大量循環(huán)的時候<BR>list.clear()與list?=?null?區(qū)別,需要的朋友可以參考下
    2023-08-08

最新評論

象山县| 格尔木市| 河间市| 湟源县| 东山县| 涟源市| 沅陵县| 青浦区| 左云县| 正定县| 牙克石市| 龙游县| 辽源市| 柯坪县| 东明县| 尉氏县| 浙江省| 会同县| 肥乡县| 铜川市| 湟源县| 惠来县| 诸暨市| 南溪县| 宿松县| 吉木乃县| 松潘县| 筠连县| 紫云| 阳西县| 米林县| 祁阳县| 介休市| 南安市| 峨山| 微山县| 新和县| 宁海县| 那坡县| 巴里| 静宁县|