麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > XML > 正文

詳解XML-RPC和JAX-RPC

2024-09-05 20:54:10
字體:
供稿:網(wǎng)友

響應(yīng)也是簡單的XML文件,擁有根元素,或者有或者沒有子元素。這與復(fù)雜的SOAP相應(yīng)對比鮮明。

原先的XML-RPC協(xié)議是由Web先鋒Dave Winer于1998年在UserLand Software公司發(fā)明的。其第一個(gè)實(shí)現(xiàn)是在UserLand Frontier開發(fā)平臺(tái)上(事實(shí)上,UserLand Software的商標(biāo)就是"XML-RPC")。“在HTTP之上傳輸XML文本”方法的自然用途就是創(chuàng)建SOAP,這其中有Winer, Don Box以及其他微軟公司人士的貢獻(xiàn)。但是,SOAP由于很多對應(yīng)用完全不必要得特性而變得非常重量級(jí),所以XML-RPC還是值得注意的。

原先的XML-RPC只使用一些數(shù)據(jù)類型,并不需要名字空間。通過定義和包含其它值的類型,它獲得了相當(dāng)可觀的靈活性。下面是一個(gè)XML-RPC說明書中的例子。它指定了示例應(yīng)用程序中"getStateName"方法的輸入?yún)?shù)。

以下為引用的內(nèi)容:
<?xml version="1.0"?>
<methodCall>
  <methodName>examples.getStateName
  <params>
    <param>41
  </params>
</methodCall>

你可能已經(jīng)猜到這個(gè)標(biāo)簽表示4字節(jié)整數(shù),下面是用于在標(biāo)簽中指定如何翻譯內(nèi)容的所有類型標(biāo)簽。如果沒有使用任何標(biāo)簽,就認(rèn)為是String值。注意,參數(shù)并沒有被命名,元素的順序只和方法參數(shù)的順序一樣。

以下為引用的內(nèi)容:
Java Type  XML tag      Description
Integer   or    A 32 bit signed integer
Double        A double precision (64bit) signed floating point number
Boolean       0 (false) or 1 (true)
String        string
Date or   A timestamp in the ISO8601 style but simplified
Calendar            with resolution to the second.
byte[]        A base-64 encoded array of bytes
Map          Pair(s) of tags where the name is a string and
                the value can be any other type, including
Object[]        An array of objects where the elements can be any other type.


在原始的說明書中,沒有辦法指明任何類型的“null”值,但擴(kuò)展版本允許附加類型。

響應(yīng)也是簡單的XML文件,擁有根元素,或者有或者沒有子元素。這與復(fù)雜的SOAP相應(yīng)對比鮮明。

XML-RPC實(shí)現(xiàn)

xmlrpc.com上列出的實(shí)現(xiàn)給出了通往79個(gè)不同實(shí)現(xiàn)的鏈接,它們在各種語言中實(shí)現(xiàn)了基本的XML-RPC協(xié)議,包括5個(gè)2003年12月用Java語言實(shí)現(xiàn)的。但是,這些項(xiàng)目中很多都是停滯的。而由Apache Web Services Project主持的項(xiàng)目則是活躍的。我嘗試運(yùn)行當(dāng)前的3.0a1版本,卻發(fā)現(xiàn)它對其它Web服務(wù)項(xiàng)目庫有奇怪的依賴。看起來似乎Apache Web Services Project在開發(fā)3版本,所以如果你對開源XML-RPC解決方案感興趣,不妨對它多關(guān)注。

JAX-RPC: 針對XML RPC的Java API

最早的Java API要從JSR 101開始算起。這項(xiàng)工作從2001年初開始,到2002年年中到達(dá)1.0版本。2003年,發(fā)布了1.1版本并附帶在Java Web Services Developer Pack由Sun的參考實(shí)現(xiàn)。在JAX-RPC中,Java原始類型的定義與XML schema類型緊密相關(guān)。它還支持更多的Java標(biāo)準(zhǔn)庫對象,例如,BigInteger 和 BigDecimal,以及符合JavaBeans標(biāo)準(zhǔn)的對象。使用JSR 101的人可以并行開發(fā)SOAP和其它XML技術(shù)。

Java Web Services Developer Pack (JWSDP)1.6版包括很多其它東西以及對JAX-RPC 1.1.3的一個(gè)實(shí)現(xiàn)。

JAX-WS 2.0:下一個(gè)JAX-RPC

該說明書的下一個(gè)版本叫做JAX-WS 2.0,是針對基于XML的Web服務(wù),用來代替JAX-RPC的Java API。該標(biāo)準(zhǔn)被作為Java Specification Request (JSR) 224來開發(fā),現(xiàn)在處于最后草案階段。

JAX-RPC的下一個(gè)版本將顯著降低Web服務(wù)開發(fā)的復(fù)雜性,部分通過使用Java 1.5標(biāo)準(zhǔn)庫的特性來實(shí)現(xiàn)。你可以跟蹤網(wǎng)站上源碼列表中的參考實(shí)現(xiàn)。至于本文,已經(jīng)可以訪問第3版的參考實(shí)現(xiàn)。

使用JWSDP 1.6

JWSDP 1.6一個(gè)有用的功能就是對Web Services Description Language (WSDL)的支持。假定有一個(gè)描述Web服務(wù)的WSDL文檔,那么就可以自動(dòng)生成訪問服務(wù)的客戶端代碼和支持服務(wù)的服務(wù)器端代碼。為了用一個(gè)簡單的接口用來相應(yīng)客戶對已發(fā)布的Web服務(wù)的請求,我在JWSDP 1.6中用wscompile工具創(chuàng)建客戶端的類,它們可以基于三四個(gè)輸入?yún)?shù)來描述可能的動(dòng)作。結(jié)果,幾秒鐘內(nèi)就能創(chuàng)建驚人的32個(gè)類。

一旦我指出這些類中的哪些提供真正的創(chuàng)建請求的起始點(diǎn),那么編寫代碼實(shí)現(xiàn)簡單的命令行接口就很簡單了。而當(dāng)我想運(yùn)行程序時(shí),問題隨之而來。客戶端需要從JWSDP中添加10個(gè)jar包到他自己的Java程序中。

由于不能幫大家一個(gè)一個(gè)調(diào)試這些jar包與其它Java程序的潛在沖突,我放棄這種做法,轉(zhuǎn)而用string模板寫一個(gè)簡單的程序來創(chuàng)建SOAP請求和XPath來翻譯返回的結(jié)果。就像其名字一樣,我認(rèn)為JWSDP將主要用于創(chuàng)建Web服務(wù),而不是消費(fèi)Web服務(wù)。

XML-RPC還有用嗎?

JAX-RPC的復(fù)雜性導(dǎo)致程序員的某種倒退。從Google中搜索"JAX-RPC complexity"就能看到一些用戶的反應(yīng)。我想你應(yīng)該在以下情況考慮XML-RPC而不是JAX-RPC:

你的應(yīng)用程序只需相對簡單的請求

你能控制服務(wù)器端和客戶端,你不需要發(fā)布WSDL

你想簡單的解析客戶端(就像AJAX應(yīng)用程序)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 综合99| 久久91久久| 香蕉成人在线视频 | 日本在线精品视频 | 精品一区二区视频在线观看 | 成人福利在线播放 | 黄色的视频免费看 | 九九热精品视频在线 | 性欧美日本 | 欧美一级成人一区二区三区 | 色妞视频男女视频 | 91九色视频在线播放 | 国产在线中文 | av成人免费看 | 亚洲3p激情在线观看 | 在线观看麻豆 | 狠狠操电影 | 国产资源在线播放 | 性爱视频免费 | 欧美三区在线 | 久久国产不卡 | 水多视频在线观看 | 香蕉国产精品 | 久久精品亚洲一区 | www.99re1.com| 日韩视频在线一区二区三区 | 欧美日韩精品一区二区三区蜜桃 | 午夜精品久久久久久久爽 | 亚洲天堂成人在线 | 国产精品99久久久久久大便 | 激情小说激情电影 | 久久人人爽人人爽人人片av高清 | 一本免费视频 | 91精品久久香蕉国产线看观看 | 欧美黄色片免费看 | 久久亚洲春色中文字幕久久 | 欧美乱论| 久久精品视频网址 | 色99久久 | 久久人人爽人人爽人人片av高请 | 红桃一区|