久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java開發(fā)中經(jīng)常使用到的幾種WebService技術(shù)實(shí)現(xiàn)方案

 日月桃子 2017-03-22

Java開發(fā)中經(jīng)常使用到的幾種WebService技術(shù)實(shí)現(xiàn)方案

原文地址:     http://blog.csdn.net/zolalad/article/details/25158995

 隨著異構(gòu)系統(tǒng)互聯(lián)需求的不斷增加,,WebService的重要性也日益彰顯出來,。憑借webservice,我們可以實(shí)現(xiàn)基于不同程序語言的項(xiàng)目的互聯(lián)互通,。更可以將開發(fā)好的程序接口以服務(wù)的形式發(fā)布出去供使用者調(diào)用,。webservice也是SOA的基石,因此目前各大企業(yè)對(duì)于webservice開發(fā)者的需求量也是與日俱增,。

      Web Service可以做什么,?
      Web Servcie最主要的優(yōu)點(diǎn)是: 即跨語言,跨平臺(tái)的不同系統(tǒng)之間的通信,。 現(xiàn)在企業(yè)內(nèi)部的很多系統(tǒng)集成,,企業(yè)和企業(yè)之間的系統(tǒng)集成的問題。Web Service是主要的解決方案,。(服務(wù)重用,,降低開發(fā)成本,只開放自己愿意開放的服務(wù)),。
       目前webservice開發(fā)主要有以下兩種開發(fā)模式:一是傳統(tǒng)基于SOAP模式的webservice開發(fā),;二是基于rest模式的webservice開發(fā)。

一,、基于SOAP的WebService解決方案

1 ,、SOAP協(xié)議

       簡單對(duì)象訪問協(xié)議是交換數(shù)據(jù)的一種協(xié)議規(guī)范,,是一種輕量的、簡單的,、基于XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集)的協(xié)議,,它被設(shè)計(jì)成在WEB上交換結(jié)構(gòu)化的和固化的信息。

2,、SOAP與JAX-WS的關(guān)系

       JAX-WS(Java6引進(jìn)) 是SOAP協(xié)議的一個(gè)Java的實(shí)現(xiàn)規(guī)范,,這個(gè)新規(guī)范是為了簡化基于SOAP的Java開發(fā)。JAX-WS規(guī)范其實(shí)就是一組XMLweb services的Java API,,JAX-WS允許開發(fā)者可以選擇RPC-oriented或者message-oriented來實(shí)現(xiàn)自己的web services,。通過使用 Java? API for XMLWeb Services (JAX-WS) 技術(shù)設(shè)計(jì)和開發(fā) Web 服務(wù),可以帶來很多好處,,能簡化 Web 服務(wù)的開發(fā)和部署,,并能加速 Web 服務(wù)的開發(fā)。
        在 JAX-WS中,,一個(gè)遠(yuǎn)程調(diào)用可以轉(zhuǎn)換為一個(gè)基于XML的協(xié)議,,比如SOAP。在使用JAX-WS過程中,,開發(fā)者不需要編寫任何生成和處理SOAP消息的代碼,。JAX-WS的運(yùn)行時(shí)實(shí)現(xiàn)會(huì)將這些API的調(diào)用轉(zhuǎn)換成為對(duì)應(yīng)的SOAP消息。

        2.1 實(shí)現(xiàn)一個(gè)基于JWS的webservice項(xiàng)目(直接使用JWS api 實(shí)現(xiàn),,不借助任何webservice框架)
        (1)在服務(wù)器端,,用戶只需要通過Java語言定義遠(yuǎn)程調(diào)用所需要實(shí)現(xiàn)的接口SEI(service endpoint interface),并提供相關(guān)的實(shí)現(xiàn)類SIB(Service implementation Bean),。

         (2)通過調(diào)用JAX-WS的服務(wù)發(fā)布接口就可以將其發(fā)布為WebService接口
         (3)在客戶端,,用戶可以通過JAX-WS的API創(chuàng)建一個(gè)代理(用本地對(duì)象來替代遠(yuǎn)程的服務(wù))來實(shí)現(xiàn)對(duì)于遠(yuǎn)程服務(wù)器端的調(diào)用。wsimport命令用于生成本地代理(即本地對(duì)象),。

       設(shè)計(jì)流程如下:

        當(dāng)然 JAX-WS 也提供了一組針對(duì)底層消息進(jìn)行操作的API調(diào)用,,你可以通過Dispatch 直接使用SOAP消息或XML消息發(fā)送請(qǐng)求或者使用Provider處理SOAP或XML消息。
       通過web service所提供的互操作環(huán)境,,我們可以用JAX-WS輕松實(shí)現(xiàn)JAVA平臺(tái)與其他編程環(huán)境(.net,、php等)的互操作。

      JAX-WS同時(shí)支持基于SOAP的Web服務(wù)和REST風(fēng)格的Web服務(wù),。

      示例參考:webservice之實(shí)現(xiàn)一個(gè)基于JWS的webservice項(xiàng)目

3,、JAX-WS與JAX-RPC之間的關(guān)系:

        JAX-WS通常可簡寫為JWS,。當(dāng)前JWS的版本為2.x,。JAX-WS是JAX-RPC的后繼新技術(shù),,日漸流行,。Sun早期的web services的實(shí)現(xiàn)是JAX-RPC 1.1 (JSR 101),,這個(gè)實(shí)現(xiàn)是基于Java的RPC,并不完全支持schema規(guī)范,,同時(shí)沒有對(duì)Binding和Parsing定義標(biāo)準(zhǔn)的實(shí)現(xiàn),。
       JAX-WS2.0(JSR 224)是Sun新的webservices協(xié)議棧,,是一個(gè)完全基于標(biāo)準(zhǔn)的實(shí)現(xiàn)。在binding層,,使用的是theJava Architecture for XML Binding (JAXB, JSR 222),,在parsing層,使用的是theStreaming API for XML (StAX, JSR 173),,同時(shí)它還完全支持schema規(guī)范,。

4、基于JAX-WS規(guī)范的webservice 開發(fā)框架:Apache Axis2Apache CXF

       4.1  利用Apache Axis2實(shí)現(xiàn)基于SOAP的Web Service技術(shù)
       4.2  利用Apache CXF實(shí)現(xiàn)基于SOAP的Web Service 技術(shù)

       注:也可以不使用框架,,直接使用JAX-WS提供的接口編寫webservice程序,,但這樣就會(huì)很復(fù)雜(參考13)。

       Apache AxisApache CXF均是是JAX-WS規(guī)范的一個(gè)開源實(shí)現(xiàn)框架,。并且這兩個(gè)框架同時(shí)也支持JAX-RS規(guī)范,。

       Apache Axis2是是新一代的SOAP引擎。支持各種數(shù)據(jù)綁定技術(shù),,包括官方 Java?標(biāo)準(zhǔn) JAXB 2.x,。Axis2 還支持針對(duì) Web 服務(wù)配置的 Java 標(biāo)準(zhǔn)JAX-WS 2.x,作為其自有的配置技術(shù)的替代選擇,。另外,,它還支持REST (Representational State Transfer)。

       Apache CXF 是一個(gè)開源的 Services 框架,,CXF 幫助您利用 Frontend 編程 API 來構(gòu)建和開發(fā) Services ,,像 JAX-WS 。這些 Services 可以支持多種協(xié)議,,比如:SOAP,、XML/HTTP、RESTful HTTP 或者 CORBA ,,并且可以在多種傳輸協(xié)議上運(yùn)行,,比如:HTTP、JMS 或者 JBI,,CXF 大大簡化了 Services 的創(chuàng)建,,同時(shí)它繼承了 XFire 傳統(tǒng),一樣可以天然地和 spring 進(jìn)行無縫集成,。

       Apache CXF是在Java項(xiàng)目中使用的比較多的webservice開源框架,,其也提供了對(duì)spring的良好支支持。

二,、基于Rest的Web Service解決方案

1,、Rest

       REST(Representational State Transfer)是一種輕量級(jí)的Web Service架構(gòu)風(fēng)格,,其實(shí)現(xiàn)和操作明顯比基于SOAPXML-RPC技術(shù)的webservice更為簡潔,可以完全通過HTTP協(xié)議實(shí)現(xiàn),,還可以利用緩存Cache來提高響應(yīng)速度,,性能、效率和易用性上都優(yōu)于SOAP協(xié)議,。REST架構(gòu)讓人們真正理解我們的網(wǎng)絡(luò)協(xié)議HTTP本來面貌,,對(duì)資源的操作包括獲取、創(chuàng)建,、修改和刪除資源的操作正好對(duì)應(yīng)HTTP協(xié)議提供的GET,、POST、PUT和DELETE方法,,因此REST把HTTP對(duì)一個(gè)URL資源的操作限制在GET,、POST、PUT和DELETE這四個(gè)之內(nèi),。這種針對(duì)網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和開發(fā)方式,,可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性,。

2,、Rest和JAX-RS的關(guān)系

      JAX-RS (JavaAPI for RESTful Web Services)是Rest技術(shù)的一個(gè)Java實(shí)現(xiàn)規(guī)范,這個(gè)新規(guī)范提供了基于REST的webservice開發(fā)的應(yīng)用程序接口,。它主要關(guān)注使用Java注釋和普通舊式Java對(duì)象(POJO)實(shí)現(xiàn)RESTful服務(wù),。盡管總是可以使用servlet實(shí)現(xiàn)RESTful服務(wù),但是以這種方式實(shí)現(xiàn)業(yè)務(wù)邏輯需要太多HTTP GET請(qǐng)求,。
       JAX-RS 隱藏所有 HTTP 并把servlet 綁定到 Java 類中的各個(gè)方法,。注釋還可以動(dòng)態(tài)地提取 HTTP 請(qǐng)求中的信息,以及把應(yīng)用程序生成的異常映射到 HTTP 響應(yīng)碼,。由于這些原因,,JAX-RS 是一種實(shí)現(xiàn)RESTful Java Web 服務(wù)的有效方法。

       JAX-RS提供了一些標(biāo)注將一個(gè)資源類,,一個(gè)POJO Java類,,封裝為Web資源。

       標(biāo)注包括:

        @Path,,標(biāo)注資源類或者方法的相對(duì)路徑
        @GET,,@PUT,@POST,,@DELETE,,標(biāo)注方法是HTTP請(qǐng)求的類型。
        @Produces,,標(biāo)注返回的MIME媒體類型
        @Consumes,,標(biāo)注可接受請(qǐng)求的MIME媒體類型
        @PathParam,,@QueryParam,@HeaderParam,,@CookieParam,,@MatrixParam,@FormParam,分別標(biāo)注方法的參數(shù)來自于HTTP請(qǐng)求的不同位置,,例如        @PathParam來自于URL的路徑,@QueryParam來自于URL的查詢參數(shù),,@HeaderParam來自于HTTP請(qǐng)求的頭信息,,@CookieParam來自于HTTP請(qǐng)求的Cookie。

3,、利用Apache Wink實(shí)現(xiàn)基于REST的Web Service技術(shù)

       Apache WinkJAX-RS規(guī)范的一個(gè)開源實(shí)現(xiàn)的框架,,用于創(chuàng)建RESTfulweb services應(yīng)用程序。Wink包括了一個(gè)服務(wù)器端模塊和一個(gè)客戶端模塊,,用于幫助開發(fā)者快速高效的開發(fā)RESTful Web services應(yīng)用,。

       其它基于JAX-RS實(shí)現(xiàn)的框架還有Jersey(詳見參考17),RestEasy,,Apache Wink,,Spring REST都可以完成REST的搭建和使用,各有特點(diǎn),,看自己的項(xiàng)目關(guān)注的是哪一方面,,性能、集成,、抑或出身,。框架或者組件能讓我們開發(fā)REST更簡單和容易,,但也需要要深入的了解為什么使用REST.

       總的來說,,基于SOAP的Web Service解決方案雖然較為成熟,且安全性較好,,但是使用門檻較高,,在大并發(fā)情況下會(huì)有性能問題,在互聯(lián)網(wǎng)上使用不太普及,,因此并不太適合Web 2.0網(wǎng)站服務(wù)使用,,目前大量的Web 2.0網(wǎng)站使用另外一種解決方案——基于RESTWeb Service技術(shù)

注:webservice是RPC遠(yuǎn)程過程調(diào)用的一種,。

參考資料:

1  ApacheWink使用介紹:http://blog.csdn.net/kimylrong/article/details/7687593

2  用ApacheWink+Eclipse+Maven2實(shí)現(xiàn)RESTful WebService:

http://blog./posts/2010/10/02/use-eclipse-maven2-apache-wink-for-restful-web-service/

3. 使用 Apache Wink,、Eclipse 和 Maven2 開發(fā) 基于RESTful 的Webservice:

參考: http://www.ibm.com/developerworks/cn/web/wa-useapachewink/?ca=drs-tp4608 

4 RESTful Web 服務(wù)和 ApacheWink,第 3 部分: ApacheWink 和 REST

http://www.ibm.com/developerworks/cn/web/wa-apachewink3/

5 Rest風(fēng)格的web服務(wù)開發(fā)-入門篇1

參考:http://www./articles/7bq6ju

6 REST類型Web服務(wù)的優(yōu)勢(shì)

http://blog.sina.com.cn/s/blog_5572d4d30100mn5a.html

7 基于 REST 的 Web 服務(wù):http://www.ibm.com/developerworks/cn/webservices/ws-restful/

8 構(gòu)建REST風(fēng)格的Web Service

http://zhangjunhd.blog.51cto.com/113473/47283/

9 使用apache CXF和maven開發(fā)基于SOAP的WebService

參考:http://www.cnblogs.com/holbrook/archive/2012/12/12/2814821.html

10關(guān)于Web Service和Rest  Service理解

參考:http://my.oschina.net/lilw/blog/170518

11  REST和SOAP WebService的區(qū)別比較

參考:http://hi.baidu.com/itaolei/item/dd8e5f0fa6f1663bf3eafc99

http://bbzoh.cn/content/09/0918/23/11553_6152605.shtml

12  JWS入門

參考:  http://blog.csdn.net/ylchou/article/details/7727337

13 JWS-webservice 與Axis2-webservice的基于SOAP的快速實(shí)現(xiàn)

參考: http://blog.csdn.net/a1314517love/article/details/24849759

14  webServices教程(JWS-Java)(圖文介紹)

考: http://wenku.baidu.com/link?url=afnra_BuxObgfW5LR_cbMM55-kLSjSnBnwAthNeTIItiITxUC51xDXZj7xicMLkpmF-KiIxKxrAj8_TWLICx-WqqVOCetHeCRaI6yz96uLy

15.遠(yuǎn)程通信的幾種選擇(RPC,,RMI,,Webservice,JMS的區(qū)別)

16. webservice的概念,,webservice可以做什么?webservice什么時(shí)候用,?

參考:http://blog.csdn.net/weiguolee/article/details/6881411

17  WebService之基于REST機(jī)制的的實(shí)現(xiàn)實(shí)例(Java版)

http://blog.csdn.net/zolalad/article/details/31424831

 參考: http://www./articles/2qAzqq

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多