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

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

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

    隨筆-42  評論-578  文章-1  trackbacks-0

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

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

    image

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

    image

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

    image

    finish后,會在主工作區出現如下圖:

    image

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

    image

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

    image

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

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

    image

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

    image

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

    image

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

    image

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

    image

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

    image

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

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

    image

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

    image

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

     

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

    image

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

    image

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

    image 

    回到Web Service對話框,將服務類型的滑塊調到“Develop service”處,

    image

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

    image

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

    image

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

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

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



    本文原創,轉載請注明出處,謝謝!http://m.tkk7.com/rongxh7(心夢帆影JavaEE技術博客)
        

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

    評論:
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2009-07-03 19:43 | 小人物
    web service的。支持!  回復  更多評論
      
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2009-07-20 09:11 | devilhao
    好好頂!  回復  更多評論
      
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2010-08-30 08:21 | 邀月
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2011-01-10 11:13 | wishstar
    很好,謝謝  回復  更多評論
      
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2011-12-29 11:02 | ccb
    The Apache Axis2 Web service runtime in Tomcat v6.0 Server does not support the service project Hello.
    我的為什么不行?  回復  更多評論
      
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2012-07-09 20:03 | 王鵬飛
    學習了!  回復  更多評論
      
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2012-12-03 15:38 | 等等
    <script>alert("111");</script>  回復  更多評論
      
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2014-04-18 14:02 | 阿斯頓
    學習了 不錯   回復  更多評論
      
    # re: [圖解教程]Axis2與Eclipse整合開發Web Service之二:WSDL逆向生成服務端 2015-07-22 10:31 | whd
    謝謝  回復  更多評論
      
    主站蜘蛛池模板: 亚洲人成7777| 中文字幕精品亚洲无线码二区| 好看的亚洲黄色经典| 免费很黄无遮挡的视频毛片| 成全高清视频免费观看| 中中文字幕亚洲无线码| 免费观看黄网站在线播放| 亚洲乱码中文论理电影| 无码国产精品一区二区免费式直播 | 亚洲中文字幕久久精品无码VA| 91高清免费国产自产| 亚洲欧洲日韩国产| 亚洲精品国产免费| 久久久久久夜精品精品免费啦 | 无码天堂va亚洲va在线va| 日韩免费高清视频网站| 亚洲精品理论电影在线观看| 免费无码黄动漫在线观看| 国产精品久久久久久亚洲影视| 尤物永久免费AV无码网站| 香港一级毛片免费看| 亚洲综合色在线观看亚洲| 中文字幕视频在线免费观看| 亚洲国产综合专区在线电影| 亚洲变态另类一区二区三区| 无码不卡亚洲成?人片| 亚洲日韩在线观看免费视频| 亚洲av永久无码精品古装片| 最近中文字幕免费完整| 亚洲中文字幕久久久一区| 亚洲第一永久AV网站久久精品男人的天堂AV | 日本不卡在线观看免费v| 免费播放国产性色生活片| 亚洲人成伊人成综合网久久久 | 日日麻批免费40分钟日本的| 亚洲首页国产精品丝袜| 日本不卡免费新一二三区| 91福利免费网站在线观看| 亚洲精品在线播放| 又粗又硬又黄又爽的免费视频 | 亚洲中文字幕无码日韩|