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

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

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

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

    ?為了實(shí)現(xiàn)平臺(tái)無(wú)關(guān),實(shí)現(xiàn)獨(dú)立的訪問(wèn)Web服務(wù), 業(yè)界制定了一系列技術(shù)標(biāo)準(zhǔn),下面是一些最重要的技術(shù):
    ?* XML
    ?* SOAP
    ?* WSDL
    下圖展示了上述技術(shù)在工作環(huán)境中是如何使用的.
    jw-0501-xfire.jpg
    在這里,提供者是可以提供服務(wù)的應(yīng)用組件, 申請(qǐng)者是需要使用服務(wù)的客戶端程序. 很多其他技術(shù)也參與了這個(gè)交互過(guò)程,但是這里只顯示了在Web服務(wù)環(huán)境中必不可少的核心組件.

    XFire
    XFire是一個(gè)免費(fèi)的,開源的SOAP框架. 它不僅允許你輕松簡(jiǎn)易地實(shí)現(xiàn)這么一個(gè)環(huán)境.而且還提供了很多先進(jìn)的特性.不錯(cuò),你沒(méi)有看錯(cuò),"輕松簡(jiǎn)易". 本文中你將會(huì)看到用XFire構(gòu)建Web服務(wù)是多么的簡(jiǎn)單.如果你的Web應(yīng)用有一個(gè)Java類, 現(xiàn)在你希望這個(gè)類編程Web服務(wù),用XFire完成這一工作你不必寫一句代碼.僅需操作一下部署描述器,你就會(huì)得到一個(gè)Web服務(wù). 是的, 就是這么簡(jiǎn)單.讓我們來(lái)看個(gè)例子.

    一個(gè)簡(jiǎn)單的Java類
    我的這個(gè)例子是一個(gè)位于Apache Tomcat 5.5.7主機(jī)運(yùn)行在J2SE 1.4.2_07下的銀行應(yīng)用. 我假設(shè)你已經(jīng)知道如何使用Java編寫web應(yīng)用并且已經(jīng)配置了Tomcat服務(wù)器.我們的這個(gè)應(yīng)用很簡(jiǎn)單,? 只完成一項(xiàng)工作, 就是將錢從一個(gè)帳戶轉(zhuǎn)到另一個(gè)帳戶.BankingService類中的transferFunds()為我們完成這一工作. 他需要4個(gè)傳入?yún)?shù)
    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;
    ????}

    ????
    }

    在上面的代碼中你看到奇怪的代碼了嗎? 大概沒(méi)有吧. 除了那個(gè)公共的默認(rèn)構(gòu)造函數(shù).這個(gè)構(gòu)造函數(shù)是必不可少的,因?yàn)閄Fire要用他來(lái)實(shí)例這個(gè)類.

    因?yàn)槭褂媒涌趤?lái)完成是很好的實(shí)踐,因此我們的類也實(shí)現(xiàn)了一個(gè)名叫IBankingService的接口.代碼很簡(jiǎn)單:

    package?com.mybank.xfire.example;

    public?interface?IBankingService?{??

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

    實(shí)際開發(fā)中,這個(gè)方法可能包含所有復(fù)雜的調(diào)用,請(qǐng)求和處理操作,但是我們的例子將其最小化以便我們能將精力集中到我們的目標(biāo)上:將這個(gè)方法轉(zhuǎn)換成Web服務(wù).

    你可以看到,我們的BankingService只不過(guò)是一個(gè)普通的Java類,沒(méi)有任何代碼說(shuō)明它是否在Web服務(wù)中使用.這就對(duì)了!我們不需要寫任何代碼,所有工作都交給部署描述去處理.
    后面我將介紹如何編寫部署描述。
    XFire:開發(fā)Web服務(wù)的簡(jiǎn)易之道(二)--Web應(yīng)用的部署配置

    posted on 2006-05-15 14:46 學(xué)二的貓 閱讀(3246) 評(píng)論(3)  編輯  收藏 所屬分類: Java禪機(jī)

    評(píng)論:
    # re: XFire:開發(fā)Web服務(wù)的簡(jiǎn)易之道(一)--XFire簡(jiǎn)介 2006-05-16 09:39 | Harryson
    謝謝,樓主,:0)
    以前總以為webservice是很負(fù)責(zé)的東東,現(xiàn)在看來(lái)中的很容易.  回復(fù)  更多評(píng)論
      
    # re: XFire:開發(fā)Web服務(wù)的簡(jiǎn)易之道(一)--XFire簡(jiǎn)介 2006-05-16 10:16 | 學(xué)二的貓
    @Harryson
    怎么叫"很容易",那家活可是"相當(dāng)容易"!  回復(fù)  更多評(píng)論
      
    # re: XFire:開發(fā)Web服務(wù)的簡(jiǎn)易之道(一)--XFire簡(jiǎn)介 2006-06-19 13:39 | tooy
    拜托,轉(zhuǎn)載請(qǐng)做聲明好不好。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲日本在线免费观看| 性做久久久久久久免费看| 亚洲AV美女一区二区三区| 最近最新高清免费中文字幕| 亚洲成年人电影网站| 日韩在线看片免费人成视频播放| 无码的免费不卡毛片视频| 91大神亚洲影视在线| 免费国产成人高清视频网站| 黄色片免费在线观看| 亚洲欧洲日产国码久在线| 亚洲桃色AV无码| 四虎影院免费视频| 免费看黄的成人APP| 精品亚洲av无码一区二区柚蜜| 亚洲AV永久无码精品水牛影视 | a级毛片毛片免费观看久潮喷| 亚洲毛片一级带毛片基地| 亚洲国产精品毛片av不卡在线| 无码精品一区二区三区免费视频 | 精品国产呦系列在线观看免费| 亚洲AV无码第一区二区三区 | 毛片免费观看网址| 亚洲日日做天天做日日谢| 亚洲日本韩国在线| 无码国产精品一区二区免费| 一出一进一爽一粗一大视频免费的| 亚洲欧洲精品在线| 亚洲国产美女精品久久久久∴| 在线a人片天堂免费观看高清| 无码国产精品一区二区免费16| 日本中文字幕免费看| 中文字幕在线观看亚洲日韩| 亚洲国产一区二区a毛片| 亚洲国产精品成人一区| 四虎www成人影院免费观看| 亚洲视频免费在线看| 久久精品成人免费看| 国产伦精品一区二区免费| 日韩精品亚洲专区在线影视| 中文日韩亚洲欧美制服|