国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用SAAJ1.2發送和接收二進制Web服務內容(一)

2019-11-18 16:24:30
字體:
來源:轉載
供稿:網友
摘要
    開發者們正確地批評了SOAP(Simple Object access PRotocol),因為它過分地復雜。然而,事實上,SOAP只是一種xml信息格式,并且,它的復雜性更多的與我們如何活用SOAP有關系。在SOAP的最簡單形式中,它能夠在Web服務器端和客戶端傳遞結構化的信息。由于SOAP信息并不限制為XML數據,它還能夠包括二進制的內容,所以SOAP信息代表了一種在Web上傳遞信息的簡單方式。在Frank Sommers的最新的Web Services專欄中,他演示了如何使用SAAJ1.2(SOAP with Attachments API for java 1.2)創建,解析和發送帶有二進制內容的SOAP信息。
(2100字;2003年,9月)By Frank Sommers

原文第一頁:http://www.javaworld.com/javaworld/jw-09-2003/jw-0912-webservices.Html
    在寫這篇文章的時候,大多數的Web服務由簡單的信息交換組成:客戶端連接到Web服務器端,并發送一條消息給服務端。Web服務端處理客戶端的請求并發送回應給客戶端。這個簡單的請求/回應模式,模擬了HTTP協議幫助客戶端/服務器端交互的過程。同樣由于HTTP,Web服務信息的交換經常必須包含二進制的內容。比如圖像,文檔或者聲音片段。這篇文章介紹了使用SAAJ1.2(SOAP with Attachements API for Java 1.2)來發送和接收二進制內容Web信息。
    
    在深入到傳送二進制Web服務內容的復雜機制前,值得指出的是:簡單的請求/回應類型的Web服務,與客戶端/服務器端的遠程過程調用(RPC)方式不同。在RPC中,服務器給出一個類似API的接口。而客戶端通過使用遠程調用服務的API,傳遞必要的參數和接收調用值來啟用一個服務。
  
    基于XMl的RPC調用類似在OO系統中調用一個對象一樣。事實上,當你用基于XML的JAVA API工作時(Java API for XML-based RPC簡JAX-RPC),你總是覺得在跟Java對象工作,而不是跟XML文檔工作。JAX-RPC能讓你把Web服務看作遠程對象,這很像Java RMI(Remote Method Invocation)。JAX-RPC運行時把高層次的OO方法調用轉化為遠程Web服務需要XML文檔。雖然RPC類型的Web服務通常能提供更便捷的編程模型,但是RPC調用也必須依賴更低的消息層來完成組成遠程調用XML信息交換。

    對于有些Web服務來說,直接在低級別的消息層編程通常是很有用的。例如,如果你想調用一個處理訂單的文檔并返回收據,對這樣的Web服務,你能夠很容易地把文檔交換模塊化為一個請求/回應的信息交換。替代遠程方法調用的是,你將構建XML信息,直接發送這些信息到Web服務,如果有的話,還會處理服務的XML回應。由于SOAP為Web信息服務定義了公共的信息格式,你需要構建符合SOAP格式的信息,并且,一旦服務有回應,就要把這些SOAP回應信息解析成你的程序所能理解的格式。

    SAAJ提供了一個能方便地構建和讀取SOAP信息的庫,這個庫還允許你通過網絡接收和發送SOAP信息。SAAJ定義了javax.xml.soap包。在這個包里面的類組成了最初的JAXM(Java API for XML Messaging),但是最近他們被分離出來成為單獨的API。JAXM依賴于SAAJ來構建和處理SOAP信息,并且依賴SAAJ來增加信息的可靠性和增加其他的XML信息特征。盡管SAAJ是J2EE的一部分,JAXM卻不是。這篇文章聚焦于SAAJ中最有用的一個方面:就是SAAJ捆綁二進制內容到SOAP信息的能力。

使用附件的好處
    盡管SOAP的設計核心集中在信息中封裝XML文檔,但是,SOAP的附件特征擴展了SOAP所能包含的信息,除了普通的SOAP部分,還可以包括0個到多個附件,如圖1所示。每一個附近都由一個MIME類型定義,并且能采用任何的二進制流內容。
    
使用SAAJ1.2發送和接收二進制Web服務內容(一)(圖一)

圖1:帶有附件的SOAP信息


    當客戶端希望傳送二進制數據的時候,SOAP的附件特征是非常有用的,比如傳送圖像,音頻數據給一個Web服務。如果沒有SOAP附件,發送一個二進制信息會困難很多。比如,一個客戶端的SOAP信息傳送二進制文件的URL地址。那么,客戶端不得不操作一個HTTP服務器,來讓Web服務找到這個二進制文件。這會給Web服務的客戶端造成過度的負載,特別是當客戶端運行在資源有限的設備中,比如數碼相機或者掃描儀。SOAP的附件能力使得任何的Web服務客戶,能夠在SOAP信息里直接傳送內嵌二進制文件的SOAP信息。

    SOAP附件,已被證明能很方便地與網絡站點入口交互。考慮這樣一個現實中的房產代理網絡,它需要發送房子的介紹和照片到房產查詢中心入口。如果這個入口操作一個servlet來讓帶附件的SOAP信息置入,一個房產代理可以用幾個SOAP信息更新它的列表,包括這些房子的照片。SOAP信息體可能嵌入了房子所有權的介紹,并且SOAP附件能帶有房子圖片文件。在這樣的情況下,當一個入口操作servlet接收了這種信息,它就能返回一個認證文檔,表明了在入口的發布的有效性。圖2說明了這樣的一個Web服務。


使用SAAJ1.2發送和接收二進制Web服務內容(一)(圖二)

房產代理的WEB服務,使用了帶附件的SOAP信息


冬臨  ,java 愛好者,Matrix xml soap翻譯小組成員
進入討論組討論。

(出處:http://m.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐山县| 渭源县| 满城县| 大渡口区| 乡城县| 临桂县| 五常市| 新田县| 会东县| 西城区| 丹阳市| 颍上县| 津市市| 潮州市| 四平市| 阿荣旗| 瑞安市| 和硕县| 麻江县| 辽源市| 乐业县| 丰宁| 鹰潭市| 花莲县| 丹阳市| 衢州市| 阿坝县| 永登县| 贡嘎县| 绥江县| 怀化市| 莆田市| 闻喜县| 女性| 房产| 八宿县| 长泰县| 石棉县| 武安市| 新邵县| 泾川县|