更新時間:2020-09-18 17:02:25 來源:動力節(jié)點 瀏覽1565次
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,Internet逐漸成為全球信息傳遞與共享的巨大的資源庫,與此同時,越來越多的網(wǎng)絡(luò)環(huán)境下的Web應(yīng)用系統(tǒng)被建立起來。隨著網(wǎng)絡(luò)技術(shù)、網(wǎng)絡(luò)運行理念的發(fā)展,人們提出一種新的利用網(wǎng)絡(luò)進行應(yīng)用集成的解決方案——Web Service。為了規(guī)范互聯(lián)網(wǎng)中越來越多的Web程序,Web Service規(guī)范逐漸形成。
下面和大家一起來了解一下目前的3種Web Service規(guī)范:
1.JAX-WS:
JAX-WS(Java API For XML-WebService),JDK1.6 自帶的版本為JAX-WS2.1,其底層支持為JAXB。早期的基于SOAP 的JAVA 的Web 服務(wù)規(guī)范JAX-RPC(Java API For
XML-Remote Procedure Call)目前已經(jīng)被JAX-WS 規(guī)范取代,JAX-WS 是JAX-RPC 的演進版本,但JAX-WS 并不完全向后兼容JAX-RPC,二者最大的區(qū)別就是RPC/encoded 樣式的WSDL,JAX-WS 已經(jīng)不提供這種支持。JAX-RPC 的API 從JAVA EE5 開始已經(jīng)移除,如果你使用J2EE1.4,其API 位于javax.xml.rpc.*包。JAX-WS(JSR 224)規(guī)范的API 位于javax.xml.ws.*包,其中大部分都是注解,提供API 操作Web 服務(wù)(通常在客戶端使用的較多,由于客戶端可以借助SDK 生成,因此這個包中的API 我們較少會直接使用)。WS-MetaData(JSR 181)是JAX-WS 的依賴規(guī)范,其API 位于javax.jws.*包,使用注解配置公開的Web 服務(wù)的相關(guān)信息和配置SOAP 消息的相關(guān)信息。
2.JAXM&SAAJ:
JAXM(JAVA API For XML Message)主要定義了包含了發(fā)送和接收消息所需的API,相當(dāng)于Web 服務(wù)的服務(wù)器端,其API 位于javax.messaging.*包,它是JAVA EE 的可選包,因此你需要單獨下載。SAAJ(SOAP With Attachment API For Java,JSR 67)是與JAXM 搭配使用的API,為構(gòu)建SOAP 包和解析SOAP 包提供了重要的支持,支持附件傳輸,它在服務(wù)器端、客戶端都需要使用。這里還要提到的是SAAJ 規(guī)范,其API 位于javax.xml.soap.*包。JAXM&SAAJ 與JAX-WS 都是基于SOAP 的Web 服務(wù),相比之下JAXM&SAAJ 暴漏了SOAP更多的底層細節(jié),編碼比較麻煩,而JAX-WS 更加抽象,隱藏了更多的細節(jié),更加面向?qū)ο?,實現(xiàn)起來你基本上不需要關(guān)心SOAP 的任何細節(jié)。那么如果你想控制SOAP 消息的更多細節(jié),可以使用JAXM&SAAJ,2012年版本為1.3。
3.JAX-RS:
JAX-RS 是JAVA 針對REST(Representation State Transfer)風(fēng)格制定的一套Web 服務(wù)規(guī)范,由于推出的較晚,該規(guī)范(JSR 311,目前JAX-RS 的版本為1.0)并未隨JDK1.6 一起發(fā)行,你需要到JCP 上單獨下載JAX-RS 規(guī)范的接口,其API 位于javax.ws.rs.*包。
這里的JAX-WS 和JAX-RS 規(guī)范我們采用Apache CXF 作為實現(xiàn),CXF 是Objectweb Celtix和Codehaus XFire 合并而成。CXF 的核心是org.apache.cxf.Bus(總線),類似于Spring 的ApplicationContext,Bus 由BusFactory 創(chuàng)建,默認是SpringBusFactory 類,可見默認CXF是依賴于Spring 的,Bus 都有一個ID,默認的BUS 的ID 是cxf。你要注意的是Apache CXF2.2 的發(fā)行包中的jar 你如果直接全部放到lib 目錄,那么你必須使用JDK1.6,否則會報JAX-WS 版本不一致的問題。對于JAXM&SAAJ 規(guī)范我們采用JDK 中自帶的默認實現(xiàn)。
Web Service是一種新的Web應(yīng)用程序分支,一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。Web Service規(guī)范從某種程度上制約著魚龍混雜的Web Service應(yīng)用程序,使它們趨于規(guī)范發(fā)展。有興趣在互聯(lián)網(wǎng)長期發(fā)展的小伙伴可以觀看本站的java視頻教程,學(xué)習(xí)更加全面的前端知識!
初級 202925
初級 203221
初級 202629
初級 203743