日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java开发Web Service的几种解决方案

發布時間:2023/12/4 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java开发Web Service的几种解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/zolalad/article/details/25158995


Java開發中經常使用到的幾種WebService技術實現方案

? ? ? 隨著異構系統互聯需求的不斷增加,WebService的重要性也日益彰顯出來。憑借webservice,我們可以實現基于不同程序語言的項目的互聯互通。更可以將開發好的程序接口以服務的形式發布出去供使用者調用。webservice也是SOA的基石,因此目前各大企業對于webservice開發者的需求量也是與日俱增。

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

一、基于SOAP的WebService解決方案

1 、SOAP協議

? ? ? ?簡單對象訪問協議是交換數據的一種協議規范,是一種輕量的、簡單的、基于XML(標準通用標記語言下的一個子集)的協議,它被設計成在WEB上交換結構化的和固化的信息。

2、SOAP與JAX-WS的關系

? ? ???JAX-WS(Java5引進)?是SOAP協議的一個Java的實現規范這個新規范是為了簡化基于SOAP的Java開發。JAX-WS規范其實就是一組XMLweb services的JAVA API,JAX-WS允許開發者可以選擇RPC-oriented或者message-oriented來實現自己的web services。通過使用 Java? API for XMLWeb Services (JAX-WS) 技術設計和開發 Web 服務,可以帶來很多好處,能簡化 Web 服務的開發和部署,并能加速 Web 服務的開發。
? ? ? ? 在 JAX-WS中,一個遠程調用可以轉換為一個基于XML的協議,比如SOAP。在使用JAX-WS過程中,開發者不需要編寫任何生成和處理SOAP消息的代碼。JAX-WS的運行時實現會將這些API的調用轉換成為對應的SOAP消息。

? ? ? ??2.1 實現一個基于JWS的webservice項目(直接使用JWS api 實現,不借助任何webservice框架)
? ? ? ? (1)在服務器端,用戶只需要通過Java語言定義遠程調用所需要實現的接口SEI(service endpoint interface),并提供相關的實現類SIB(Service implementation Bean)。

? ? ? ? ?(2)通過調用JAX-WS的服務發布接口就可以將其發布為WebService接口
? ? ? ? ?(3)在客戶端,用戶可以通過JAX-WS的API創建一個代理(用本地對象來替代遠程的服務)來實現對于遠程服務器端的調用。wsimport命令用于生成本地代理(即本地對象)。

? ? ? ?設計流程如下:

? ? ? ? 當然 JAX-WS 也提供了一組針對底層消息進行操作的API調用,你可以通過Dispatch 直接使用SOAP消息或XML消息發送請求或者使用Provider處理SOAP或XML消息。
? ? ? ?通過web service所提供的互操作環境,我們可以用JAX-WS輕松實現JAVA平臺與其他編程環境(.net、php等)的互操作。

??? ??JAX-WS同時支持基于SOAP的Web服務和REST風格的Web服務。

? ? ??示例參考:webservice之實現一個基于JWS的webservice項目

3、JAX-WS與JAX-RPC之間的關系:

? JAX-WS通??珊唽憺镴WS。當前JWS的版本為2.x。JAX-WS是JAX-RPC的后繼新技術,日漸流行。Sun早期的web services的實現是JAX-RPC 1.1 (JSR 101),這個實現是基于Java的RPC,并不完全支持schema規范,同時沒有對Binding和Parsing定義標準的實現。 JAX-WS2.0(JSR 224)是Sun新的webservices協議棧,是一個完全基于標準的實現。在binding層,使用的是theJava Architecture for XML Binding (JAXB, JSR 222),在parsing層,使用的是theStreaming API for XML (StAX, JSR 173),同時它還完全支持schema規范。

4、基于JAX-WS規范的webservice 開發框架:Apache Axis2?和Apache CXF

? ? ? ?4.1 ?利用Apache Axis2實現基于SOAP的Web Service技術
? ? ? ?4.2 ?利用Apache CXF實現基于SOAP的Web Service 技術

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

? ? ? ?Apache AxisApache CXF均是是JAX-WS規范的一個開源實現框架。并且這兩個框架同時也支持JAX-RS規范。

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

? ? ???Apache CXF?是一個開源的 Services 框架,CXF 幫助您利用 Frontend 編程 API 來構建和開發 Services ,像 JAX-WS 。這些 Services 可以支持多種協議,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多種傳輸協議上運行,比如:HTTP、JMS 或者 JBI,CXF 大大簡化了 Services 的創建,同時它繼承了 XFire 傳統,一樣可以天然地和 Spring 進行無縫集成。

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

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

1、Rest

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

2、Rest和JAX-RS的關系

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

? ? ? ?JAX-RS提供了一些標注將一個資源類,一個POJO Java類,封裝為Web資源。

? ? ???標注包括:

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

3、利用Apache Wink實現基于REST的Web Service技術

? ? ? ?Apache WinkJAX-RS規范的一個開源實現的框架,用于創建RESTfulweb services應用程序。Wink包括了一個服務器端模塊和一個客戶端模塊,用于幫助開發者快速高效的開發RESTful Web services應用。

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

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

注:webservice是RPC遠程過程調用的一種。

參考資料:

1 ?ApacheWink使用介紹:http://blog.csdn.net/kimylrong/article/details/7687593
2 ?用ApacheWink+Eclipse+Maven2實現RESTful WebService:
http://blog.fangjian.me/posts/2010/10/02/use-eclipse-maven2-apache-wink-for-restful-web-service/
3. 使用 Apache Wink、Eclipse 和 Maven2 開發 基于RESTful 的Webservice:
參考: http://www.ibm.com/developerworks/cn/web/wa-useapachewink/?ca=drs-tp4608?
4 RESTful Web 服務和 ApacheWink,第 3 部分: ApacheWink 和 REST
http://www.ibm.com/developerworks/cn/web/wa-apachewink3/
5 Rest風格的web服務開發-入門篇1
參考:http://www.tuicool.com/articles/7bq6ju
6 REST類型Web服務的優勢
http://blog.sina.com.cn/s/blog_5572d4d30100mn5a.html
7 基于 REST 的 Web 服務:http://www.ibm.com/developerworks/cn/webservices/ws-restful/
8 構建REST風格的Web Service
http://zhangjunhd.blog.51cto.com/113473/47283/
9 使用apache CXF和maven開發基于SOAP的WebService
參考:http://www.cnblogs.com/holbrook/archive/2012/12/12/2814821.html
10關于Web Service和Rest ?Service理解
參考:http://my.oschina.net/lilw/blog/170518
11 ?REST和SOAP WebService的區別比較
參考:http://hi.baidu.com/itaolei/item/dd8e5f0fa6f1663bf3eafc99
http://www.360doc.com/content/09/0918/23/11553_6152605.shtml
12 ?JWS入門
參考: ?http://blog.csdn.net/ylchou/article/details/7727337
13 JWS-webservice 與Axis2-webservice的基于SOAP的快速實現
參考: 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.遠程通信的幾種選擇(RPC,RMI,Webservice,JMS的區別)
16. webservice的概念,webservice可以做什么?webservice什么時候用?
參考:http://blog.csdn.net/weiguolee/article/details/6881411
17 ?WebService之基于REST機制的的實現實例(Java版)
http://blog.csdn.net/zolalad/article/details/31424831
?參考: http://www.tuicool.com/articles/2qAzqq

總結

以上是生活随笔為你收集整理的Java开发Web Service的几种解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 911精品| 99久久久国产精品无码免费 | 好吊一区二区三区视频 | 国产伦精品一区二区三区免费迷 | 欧美综合亚洲 | 日本一区二区三区免费视频 | 午夜精品久久久久久久第一页按摩 | 内射无码专区久久亚洲 | 亚洲天堂一二三 | 一区二区三区四区视频在线观看 | 欧美资源 | 亚洲精品男人的天堂 | 在线色站 | 日本少妇色视频 | 欧洲精品在线播放 | 亚洲熟妇无码爱v在线观看 九色福利 | 最全aⅴ番号库网 | 欧美日韩一区二区区别是什么 | 精品视频在线免费 | 亚洲小说春色综合另类 | 好吊色网站 | 国产ts变态重口人妖hd | 午夜视频在线免费看 | 亚洲国产成人一区二区精品区 | 欧美区一区二区 | 亚洲欧美福利 | 成人免费视频免费观看 | 日本欧美黄色 | 午夜dv内射一区二区 | 在线免费观看黄色av | 国产97视频| 国产又大又粗又长 | 新天堂av| 欧美一级做性受免费大片免费 | av在线男人天堂 | 久久丫精品久久丫 | 日本特级片 | 91视频h | 夜夜天天操 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 性奶老妇 视频 | 日本少妇性高潮 | 欧美国产精品一区二区 | 黄色小说视频网站 | 亚洲视频色图 | 亚洲国产中文字幕 | 日韩精品一区二区三区在线播放 | 你操综合 | 激情欧美亚洲 | 日韩电影精品 | 福利一区二区在线观看 | 午夜激情成人 | 成人在线视屏 | 久久久久久草 | 久久伊人爱 | 精品欧美激情精品一区 | 亚洲成人影音 | 99免费国产 | 人妻熟女aⅴ一区二区三区汇编 | 尹人成人 | 国产深喉视频一区二区 | 在线观看免费av网址 | a级片久久| 欧美成人精品欧美一级乱 | 国产91网址 | 激情视频一区二区三区 | 亚洲国产精品视频 | 毛片基地在线播放 | 成年人福利视频 | 极品销魂美女一区二区 | 美女网站黄页 | 99久久精品日本一区二区免费 | 怎么可能高潮了就结束漫画 | 日韩在线毛片 | 欧美生活一级片 | 男女网站在线观看 | 免费a网址| 精品少妇一区二区三区 | 欧美片免费网站 | 国产一线天粉嫩馒头极品av | avtt亚洲天堂 | 亚洲欧美网址 | 午夜激情影院 | 色偷偷成人| 日本动漫艳母 | 国产稀缺真实呦乱在线 | 少妇一级淫免费放 | 超碰在线c| 色婷婷五 | 337p日本大胆噜噜噜鲁 | 性一交一乱一伧老太 | 国产午夜不卡 | 亚洲精品二区 | 久久精品综合 | sese国产| www.亚洲高清 | 亚洲精品国产精 | 亚洲v在线 | 日本精品一区在线观看 |