<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    pzxsheng

    有種相見不敢見的傷痛,有種愛還埋藏在心中

    [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端

    原文地址:http://touch-123.iteye.com/blog/1487917

     一般開發(fā)Web Service,是選寫服務(wù)端,再根據(jù)生成的WSDL文件生成客戶端??催^一本SOA的書中說,如果實現(xiàn)防止不同語言一些特定的數(shù)據(jù)類型的不兼容性,推薦先定義WSDL接口,包括一輸入輸出參數(shù)、返回值及相關(guān)的數(shù)據(jù)類型等,再通過WSDL來生成服務(wù)器端和客戶端,這樣的好處是:服務(wù)端不用關(guān)心客戶端怎么調(diào)用,客戶端也不用關(guān)系服務(wù)端如何實現(xiàn)。

    關(guān)于Eclipse中Axis2的配置方法,請看我的[圖解教程] Axis2與Eclipse整合開發(fā)Web Service之一:簡單的計算服務(wù)例子,下面來新建一個WSDL文件,如下圖:

    image

    改個名字為“manager.wsdl”,如下圖:

    image

    下一步,定義命名空間和協(xié)議等信息,默認即行。如下圖:

    image

    finish后,會在主工作區(qū)出現(xiàn)如下圖:

    image

    這是manager.wsdl的圖形化形式,點擊“Source”會可查看到源代碼:

    image

    這是默認生成的wsdl,我們要根據(jù)我們的項目需要,修改上面的圖,首先對方法名進行修改,如下圖:

    image

    可見,修改之后,右邊的input和output也跟著修改了,這兩個就是定義plus的輸入和輸出。

    點擊input參數(shù)“plus”右邊的提示箭頭,進入下圖:

    image

    就在這里定義輸入?yún)?shù)和和參數(shù)類型等信息,因為我們plus(float x, float y)方法中有兩個參數(shù)x和y,故我們將上圖改成兩個參數(shù)的序列:

    image

    變成下圖,對比一下方法plus(float x, float y),下圖也不會太難理解吧!

    image

    我們返回manager.wsdl視圖,選擇output參數(shù)右邊的箭頭,進入下圖:

    image

    我們在這里設(shè)置float plus(float x, float y)方法的返回值及其類型,因其返回值只有一個,我們只須把上面的out的類型改成我們方法中用的float,改后,如下圖:

    image

    有沒有注意到上圖左上角有個image 圖標(biāo),點擊它,進入下圖:

    image

    我們可以在這里對輸入輸出的參數(shù)及其他數(shù)據(jù)類型進行修改,如果在上面的操作過程中,不小心產(chǎn)生了多余的標(biāo)簽的話,也可以在這里去除。

    好了,我們再回到manager.wsdl,在源代碼視圖里右鍵選“Validate”,對xml文檔進行檢驗,如果有錯誤的,就根據(jù)需要修改。

    image

    好了,圖形化編寫的wsdl文檔完成了,順便說一下,方法是可以定義多個的,如下圖:

    image

    為簡單起見,我們就先以剛才做定義的那個方法為例,看看,如何根據(jù)wsdl文件,自動生成Web Service的服務(wù)器端。

     

    我們New一個Web Service,如下圖:

    image

    記得在Web Service type中選擇“Top down Java Bean Web Service”,如下圖:

    image

    然后,在Service definition中找到剛才寫的那個manager.wsdl文件。

    image 

    回到Web Service對話框,將服務(wù)類型的滑塊調(diào)到“Develop service”處,

    image

    接下來,就next –> next –-> finish就行。它會自動生成Web Service服務(wù)端的接口和類,在類中,可找到我們定義的方法:

    image

     

    我們只要修改方法plus的方法體,以實現(xiàn)我們要實現(xiàn)的功能即行。如下:

    image

    這是通過WSDL反向生成Web Service服務(wù)端的最簡單一個例子,可能看不到有什么好處,沒有像[圖解教程] Axis2與Eclipse整合開發(fā)Web Service之一:簡單的計算服務(wù)例子那樣的簡便快捷,但如果是一些特有的數(shù)據(jù)類型,如List,Set,這些,我們有在WSDL圖形化設(shè)計中找到相應(yīng)的替代類型,先定義WSDL再生成服務(wù)端接口,這樣做,不僅Java開發(fā)客戶端是沒有問題的,用C#開發(fā)客戶端也能成功沒有出錯!

    但如果先開發(fā)服務(wù)器端的話,如果用到一些Java特有的數(shù)據(jù)類型,如List,Set,如果用其他語言生成的客戶端,就可能出問題。同理,用C#開發(fā)服務(wù)端,如果用到像DataSet這樣的返回類型的話,那如果用Java或者其他語言去開發(fā)客戶端,也可能會出現(xiàn)問題的。

    如果統(tǒng)一先寫WSDL,再根據(jù)WSDL生成服務(wù)端和客戶端,應(yīng)該是一種很不錯的做法,Eclipse在這方面的圖形化支持給帶給我們事半功倍的效果,這樣做,也比較符合SOA的做法。

    posted on 2013-05-31 09:04 科菱財神 閱讀(324) 評論(0)  編輯  收藏 所屬分類: Webservice

    導(dǎo)航

    <2013年5月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲三区在线观看无套内射| 亚洲精品成a人在线观看| 久久精品国产亚洲AV嫖农村妇女 | 亚洲日本一区二区一本一道 | 国色精品va在线观看免费视频 | 亚洲男人第一av网站| 欧洲人免费视频网站在线| 亚洲Av无码专区国产乱码DVD | 国产婷婷成人久久Av免费高清| 亚洲精品无码不卡在线播放HE| 久久精品视频免费| 亚洲高清在线观看| 久草视频免费在线观看| 亚洲AV成人影视在线观看| 免费激情视频网站| 一级黄色免费网站| 中文字幕亚洲综合久久菠萝蜜| 永久免费A∨片在线观看| 中文字幕亚洲精品| 在线观看视频免费国语| 一级一黄在线观看视频免费| 久久夜色精品国产亚洲| 91精品国产免费久久国语麻豆| 国产精品高清视亚洲精品| 国产成人精品免费视频大全五级 | 精品国产_亚洲人成在线| 美腿丝袜亚洲综合| 18禁美女裸体免费网站| 丰满亚洲大尺度无码无码专线| 亚洲美女高清一区二区三区 | 在线免费不卡视频| 天黑黑影院在线观看视频高清免费| 亚洲一区中文字幕久久| 午夜电影免费观看| 国产麻豆一精品一AV一免费| 亚洲国产成人手机在线电影bd| 免费人成视网站在线观看不卡| 日韩视频在线观看免费| 亚洲AV无码成人精品区狼人影院| 久久久青草青青亚洲国产免观| 女人与禽交视频免费看|