JAX-RPC 與 JAX-WS 的比較

????????Web 服務(wù)已經(jīng)出現(xiàn)很久了。首先是 SOAP,但 SOAP 僅描述消息的情況,然后是 WSDL,WSDL 并不會(huì)告訴您如何使用 Java? 編寫 Web 服務(wù)。在這種情況下,JAX-RPC 1.0 應(yīng)運(yùn)而生。經(jīng)過數(shù)月使用之后,編寫此規(guī)范的 Java Community Process (JCP) 人員認(rèn)識(shí)到需要對(duì)其進(jìn)行一些調(diào)整,調(diào)整的結(jié)果就是 JAX-RPC 1.1。該規(guī)范使用大約一年之后,JCP 人員希望構(gòu)建一個(gè)更好的版本:JAX-RPC 2.0。其主要目標(biāo)是與行業(yè)方向保持一致,但行業(yè)中不僅只使用 RPC Web 服務(wù),還使用面向消息的 Web 服務(wù)。因此從名稱中去掉了“RPC”,取而代之的是“WS”(當(dāng)然表示的是 Web 服務(wù))。因此 JAX-RPC 1.1 的后續(xù)版本是 JAX-WS 2.0——Java API for XML-based Web services。



不變的內(nèi)容

1.JAX-WS 仍然支持 SOAP 1.1 over HTTP 1.1,因此互操作性將不會(huì)受到影響,仍然可以在網(wǎng)上傳遞相同的消息。

2.JAX-WS 仍然支持 WSDL 1.1,因此您所學(xué)到的有關(guān)該規(guī)范的知識(shí)仍然有用。WSDL 2.0 規(guī)范已經(jīng)接近完成,但在 JAX-WS 2.0 相關(guān)工作結(jié)束時(shí)其工作仍在進(jìn)行中。



區(qū)別


SOAP 1.2

JAX-RPC 和 JAX-WS 都支持 SOAP 1.1。JAX-WS 還支持 SOAP 1.2。

XML/HTTP

WSDL 1.1 規(guī)范在 HTTP 綁定中定義,這意味著利用此規(guī)范可以在不使用 SOAP 的情況下通過 HTTP 發(fā)送 XML 消息。JAX-RPC 忽略了 HTTP 綁定。而 JAX-WS 添加了對(duì)其的支持。

WS-I Basic Profile

JAX-RPC 支持 WS-I Basic Profile (BP) V1.0。JAX-WS 支持 BP 1.1。(WS-I 即 Web 服務(wù)互操作性組織。)

新 Java 功能

JAX-RPC 映射到 Java 1.4。JAX-WS 映射到 Java 5.0。JAX-WS 依賴于 Java 5.0 中的很多新功能。

Java EE 5 是 J2EE 1.4 的后續(xù)版本,添加了對(duì) JAX-WS 的支持,但仍然支持 JAX-RPC,這可能會(huì)對(duì) Web 服務(wù)新手造成混淆。

數(shù)據(jù)映射模型

JAX-RPC 具有自己的映射模型,此模型大約涵蓋了所有模式類型中的 90%。它沒有涵蓋的部分映射到了 javax.xml.soap.SOAPElement。

JAX-WS 的數(shù)據(jù)映射模型是 JAXB。JAXB 可保證所有 XML 模式的映射。

接口映射模型

JAX-WS 的基本接口映射模型與 JAX-RPC 的區(qū)別并不大,不過二者之間存在以下差異:

????JAX-WS 的模型使用新的 Java 5.0 功能。

????JAX-WS 的模型引入了異步功能。

動(dòng)態(tài)編程模型

JAX-WS 的動(dòng)態(tài)客戶機(jī)模型與 JAX-RPC 的對(duì)應(yīng)模型差別很大。很多更改都是為了認(rèn)可行業(yè)需求:

????引入了面向消息的功能。

????引入了動(dòng)態(tài)異步功能。

????JAX-WS 還添加了動(dòng)態(tài)服務(wù)器模型,而 JAX-RPC 則沒有此模型。

消息傳輸優(yōu)化機(jī)制(Message Transmission Optimization Mechanism,MTOM)

JAX-WS 通過 JAXB 添加了對(duì)新附件規(guī)范 MTOM 的支持。Microsoft 從來沒有給 SOAP 添加附件規(guī)范;但似乎大家都支持 MTOM,因此應(yīng)該能夠?qū)崿F(xiàn)附件互操作性。

處理程序模型

從 JAX-RPC 到 JAX-WS 的過程中,處理程序模型發(fā)生了很大的變化。

JAX-RPC 處理程序依賴于 SAAJ 1.2。JAX-WS 處理程序依賴于新的 SAAJ 1.3 規(guī)范。


升級(jí)到 JAX-WS 2.0 的原因:

?能夠使用新的面向消息的 API。

?能夠使用 MTOM 發(fā)送附件數(shù)據(jù)。

?能夠通過 JAXB 更好地支持 XML 模式。

?能夠在 Web 服務(wù)客戶機(jī)中采用異步編程模型。

?能夠使用能夠處理 SOAP 1.2 消息的客戶機(jī)或服務(wù)。

?能夠在 Web 服務(wù)中消除對(duì) SOAP 的需求,而直接使用 XML/HTTP 綁定。

?能夠使用領(lǐng)先的尖端技術(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1、JAXP(Java API for XML Parsing) JAXP定義了在Java中使用DOM, SAX,...
    藝龍閱讀 2,529評(píng)論 0 0
  • 概覽 CXF frontends 是一組編程的API,被用來開發(fā)和發(fā)布webservice。CXF支持兩種類型的f...
    JohnShen閱讀 1,351評(píng)論 2 2
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,426評(píng)論 0 10
  • title: Java EE 7 Tutorial分析date: 2016-12-10 16:47:25catag...
    raincoffee閱讀 1,917評(píng)論 2 2
  • 最近離職在家,時(shí)間充裕的使人生顯得漫長(zhǎng)很多,晚上無聊時(shí),會(huì)出去大段大段的散步。各色的貓出沒于沒有人的街上,每當(dāng)我靠...
    魚蟲牙叔閱讀 231評(píng)論 0 0