隨筆-30  評論-123  文章-0  trackbacks-0
          摘要:
          問過一些.NET程序員:開發Web服務有多艱苦? 他們被我的問題逗樂了! 他們回答說:用時小于1分鐘.
          同樣的問題,我又問了一個Java程序員, 得到的回答與先前.Net程序員的大相徑庭.
          Web服務這個概念引入Java已經有5年了.然而Web服務還是被認為是一個較新的技術,這是Web服務在Java上難于實現的主要原因.
          如今,隨著新一代Web服務引擎--XFire的發布, 一切發生了翻天覆地的變化.
          使用XFire,你不需要寫一句代碼就可以將Java類方法轉換成Web服務.
          閱讀本文,你將領略到XFire是如何將開發Web服務變得無比輕松,簡易的.
          ?
          Web服務
          Web服務允許我們建立應用組件放置于網絡上的分布式系統.?不管這些應用組件是怎么寫的,使用什么語言寫的,要運行在什么操作系統上, 我們都能以統一的方式訪問這些組件.如果一個Web服務有效并且設計實現了互用性問題,那么無論你的應用是用什么語言,在什么平臺上開發的,都可以使用這些服務.?

          ?為了實現平臺無關,實現獨立的訪問Web服務, 業界制定了一系列技術標準,下面是一些最重要的技術:
          ?* XML
          ?* SOAP
          ?* WSDL
          下圖展示了上述技術在工作環境中是如何使用的.
          jw-0501-xfire.jpg
          在這里,提供者是可以提供服務的應用組件, 申請者是需要使用服務的客戶端程序. 很多其他技術也參與了這個交互過程,但是這里只顯示了在Web服務環境中必不可少的核心組件.

          XFire
          XFire是一個免費的,開源的SOAP框架. 它不僅允許你輕松簡易地實現這么一個環境.而且還提供了很多先進的特性.不錯,你沒有看錯,"輕松簡易". 本文中你將會看到用XFire構建Web服務是多么的簡單.如果你的Web應用有一個Java類, 現在你希望這個類編程Web服務,用XFire完成這一工作你不必寫一句代碼.僅需操作一下部署描述器,你就會得到一個Web服務. 是的, 就是這么簡單.讓我們來看個例子.

          一個簡單的Java類
          我的這個例子是一個位于Apache Tomcat 5.5.7主機運行在J2SE 1.4.2_07下的銀行應用. 我假設你已經知道如何使用Java編寫web應用并且已經配置了Tomcat服務器.我們的這個應用很簡單,? 只完成一項工作, 就是將錢從一個帳戶轉到另一個帳戶.BankingService類中的transferFunds()為我們完成這一工作. 他需要4個傳入參數
          1. String fromAccount
          2. String toAccount
          3. double amount
          4. String currency

          下面是代碼:

          package?com.mybank.xfire.example;

          import?java.text.NumberFormat;
          import?java.text.DecimalFormat;

          /**?XFire?WebServices?sample?implementation?class.?
          */

          public?class?BankingService?implements?IBankingService?{
          ????
          ????
          //Default?constructor.
          ????public?BankingService(){????
          ????}

          ????
          ????
          /**?Transfers?fund?from?one?account?to?another.
          ????
          */

          ????
          public?String?transferFunds(
          ????????String?fromAccount,?String?toAccount,?
          double?amount,?String?currency){
          ????????
          ????????String?statusMessage?
          =?"";
          ??????????????????????
          ????????
          //Call?business?objects?and?other?components?to?get?the?job?done.
          ????????
          //Then?create?a?status?message?and?return.
          ????????try?{
          ????????????NumberFormat?formatter?
          =?new?DecimalFormat("###,###,###,###.00");???????
          ????????????statusMessage?
          =?"COMPLETED:?"?+?currency?+?"?"?+?formatter.format(amount)+?
          ????????????
          "?was?successfully?transferred?from?A/C#?"?+?fromAccount?+?"?to?A/C#?"?+?toAccount;
          ????????}
          ?catch?(Exception?e){
          ????????????statusMessage?
          =?"BankingService.transferFunds():?EXCEPTION:?"?+?e.toString();
          ????????}

          ????????
          return?statusMessage;
          ????}

          ????
          }

          在上面的代碼中你看到奇怪的代碼了嗎? 大概沒有吧. 除了那個公共的默認構造函數.這個構造函數是必不可少的,因為XFire要用他來實例這個類.

          因為使用接口來完成是很好的實踐,因此我們的類也實現了一個名叫IBankingService的接口.代碼很簡單:

          package?com.mybank.xfire.example;

          public?interface?IBankingService?{??

          ????
          public?String?transferFunds(
          ????????String?fromAccount,?String?toAccount,?
          double?amount,?String?currency);
          ????????
          }

          實際開發中,這個方法可能包含所有復雜的調用,請求和處理操作,但是我們的例子將其最小化以便我們能將精力集中到我們的目標上:將這個方法轉換成Web服務.

          你可以看到,我們的BankingService只不過是一個普通的Java類,沒有任何代碼說明它是否在Web服務中使用.這就對了!我們不需要寫任何代碼,所有工作都交給部署描述去處理.
          后面我將介紹如何編寫部署描述。
          XFire:開發Web服務的簡易之道(二)--Web應用的部署配置

          posted on 2006-05-15 14:46 學二的貓 閱讀(3250) 評論(3)  編輯  收藏 所屬分類: Java禪機

          評論:
          # re: XFire:開發Web服務的簡易之道(一)--XFire簡介 2006-05-16 09:39 | Harryson
          謝謝,樓主,:0)
          以前總以為webservice是很負責的東東,現在看來中的很容易.  回復  更多評論
            
          # re: XFire:開發Web服務的簡易之道(一)--XFire簡介 2006-05-16 10:16 | 學二的貓
          @Harryson
          怎么叫"很容易",那家活可是"相當容易"!  回復  更多評論
            
          # re: XFire:開發Web服務的簡易之道(一)--XFire簡介 2006-06-19 13:39 | tooy
          拜托,轉載請做聲明好不好。  回復  更多評論
            
          主站蜘蛛池模板: 明星| 余干县| 永福县| 扎兰屯市| 宣威市| 红原县| 龙州县| 临武县| 日照市| 临猗县| 宝坻区| 青神县| 武邑县| 南木林县| 汤原县| 会理县| 黄大仙区| 江孜县| 新民市| 梁山县| 巴青县| 棋牌| 辰溪县| 武功县| 华安县| 同江市| 阜康市| 长岭县| 昌宁县| 库伦旗| 桦川县| 广德县| 孟州市| 泰安市| 保康县| 衡山县| 中方县| 同江市| 峨边| 扶绥县| 东乡县|