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

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

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

    隨筆-42  評(píng)論-578  文章-1  trackbacks-0

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

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

    image

    改個(gè)名字為“manager.wsdl”,如下圖:

    image

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

    image

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

    image

    這是manager.wsdl的圖形化形式,點(diǎn)擊“Source”會(huì)可查看到源代碼:

    image

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

    image

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

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

    image

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

    image

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

    image

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

    image

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

    image

    有沒有注意到上圖左上角有個(gè)image 圖標(biāo),點(diǎn)擊它,進(jìn)入下圖:

    image

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

    好了,我們?cè)倩氐絤anager.wsdl,在源代碼視圖里右鍵選“Validate”,對(duì)xml文檔進(jìn)行檢驗(yàn),如果有錯(cuò)誤的,就根據(jù)需要修改。

    image

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

    image

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

     

    我們New一個(gè)Web Service,如下圖:

    image

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

    image

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

    image 

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

    image

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

    image

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

    image

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

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

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



    本文原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處,謝謝!http://www.tkk7.com/rongxh7(心夢(mèng)帆影JavaEE技術(shù)博客)
        

    posted on 2009-07-02 15:47 心夢(mèng)帆影 閱讀(31810) 評(píng)論(9)  編輯  收藏 所屬分類: WebServiceEclipse圖解教程

    評(píng)論:
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2009-07-03 19:43 | 小人物
    web service的。支持!  回復(fù)  更多評(píng)論
      
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2009-07-20 09:11 | devilhao
    好好頂!  回復(fù)  更多評(píng)論
      
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2010-08-30 08:21 | 邀月
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2011-01-10 11:13 | wishstar
    很好,謝謝  回復(fù)  更多評(píng)論
      
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2011-12-29 11:02 | ccb
    The Apache Axis2 Web service runtime in Tomcat v6.0 Server does not support the service project Hello.
    我的為什么不行?  回復(fù)  更多評(píng)論
      
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2012-07-09 20:03 | 王鵬飛
    學(xué)習(xí)了!  回復(fù)  更多評(píng)論
      
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2012-12-03 15:38 | 等等
    <script>alert("111");</script>  回復(fù)  更多評(píng)論
      
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2014-04-18 14:02 | 阿斯頓
    學(xué)習(xí)了 不錯(cuò)   回復(fù)  更多評(píng)論
      
    # re: [圖解教程]Axis2與Eclipse整合開發(fā)Web Service之二:WSDL逆向生成服務(wù)端 2015-07-22 10:31 | whd
    主站蜘蛛池模板: 久久午夜夜伦鲁鲁片免费无码 | 国产偷国产偷亚洲清高动态图| 日韩免费无码视频一区二区三区| 亚洲AV成人无码网天堂| 亚洲毛片在线免费观看| 亚洲精品tv久久久久| AV免费网址在线观看| 91精品国产免费网站| 高清永久免费观看| 青青久久精品国产免费看| 亚洲成av人片在www鸭子| 亚洲卡一卡2卡三卡4麻豆| 亚洲αv在线精品糸列| 亚洲人成影院在线无码观看| 国产成人精品免费视频大全五级 | 国产亚洲欧洲精品| 亚洲免费日韩无码系列 | 亚洲国产日韩在线成人蜜芽 | 成人一级免费视频| 久久亚洲精品高潮综合色a片| 国产精品亚洲片夜色在线| 91亚洲精品第一综合不卡播放| 亚洲国产精品VA在线看黑人| 亚洲一级Av无码毛片久久精品| 四虎影视免费永久在线观看 | 色偷偷尼玛图亚洲综合| 91亚洲自偷在线观看国产馆| 亚洲最新黄色网址| 亚洲黄色三级网站| 亚洲美女在线观看播放| 亚洲黄色网站视频| 亚洲日本在线免费观看| 亚洲成a人不卡在线观看| 亚洲成人黄色网址| 亚洲人成www在线播放| 亚洲中文字幕乱码一区| 亚洲日产乱码一二三区别 | 成人免费观看一区二区| 亚洲精品在线免费看| 亚洲人成网站免费播放| 成视频年人黄网站免费视频|