成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解J2ME的Web服務API

開發 前端
用于Java2平臺袖珍版的Web服務API(WSA)是由JavaCommunityProcess為Java規范請求172(JSR172)而定義的,這些API是兩個相互獨立的可選包,用于遠程服務調用和XML解析。

你對J2ME的Web服務API是否了解,這里和大家分享一下,Java2平臺袖珍版(J2ME)平臺中的Web服務是由Java規范請求172(JSR172)定義的,它與標準Web服務遵循同樣的規范、結構以及調用模型。

J2ME的Web服務API講解

用于Java2平臺袖珍版(Java2Platform,MicroEdition,J2ME)的Web服務API(WSA)是由JavaCommunityProcess為Java規范請求172(JSR172)而定義的,這些API是兩個相互獨立的可選包,用于遠程服務調用和XML解析。他們是針對基于連接設備配置(ConnectedDeviceConfiguration,CDC)和有限連接設備配置(ConnectedLimitedDeviceConfiguration,CLDC1.0和CLDC1.1)的框架的。為什么用戶應該關注這些呢?因為JSR172在設備層為遠程服務調用和XML解析提供了支持,也就意味著開發人員不用將這項功能嵌入到每一個應用程序中。本文介紹了遠程服務調用可選包API。

J2ME中的Web服務

Java2平臺袖珍版(J2ME)平臺中的Web服務是由Java規范請求172(JSR172)定義的,它與標準Web服務遵循同樣的規范、結構以及調用模型。我們來回顧一下清單。

與標準Web服務的比較

JSR172Web服務API(WSA)遵循下面這些核心Web服務規范:

簡單對象訪問協議(SOAP)1.1,定義傳輸和數據編碼。

Web服務定義語言(WSDL)1.1,定義如何描述遠程服務。

XML1.0,定義XML標記語言。

XMLSchema,毫無疑問,定義XML模式。

注意JSR172不支持統一描述、發現和集成(UDDI)2.0規范,該規范定義了如何發現遠程服務。

由于有相當多的與Web服務相關并且涵蓋了不同技術的規范出臺,而且越來越多,Web服務互操作組織(WS-I)定義了WS-I基本概要1.0(WS-IBasicProfile,Version1.0)來定義Web服務規范的最小集,和一致性規則一樣,所有的基礎Web服務提供者和消費者都必須遵守該概要。JSR172規范也遵守WS-I基本概要。

與標準Web服務具有相同的體系結構:

JSR172WSA從客戶端訪問Web服務,從服務-消費者的角度來看,WSA提供遠程服務調用API(JAX-RPC)以及運行時環境,從而允許J2ME應用程序在Web上消費服務,而不是作為服務生產者(端點)來運行。除了這一點差別之外,JSR172WSA體系結構的其它部分與Web服務的標準體系結構/組織一致,如下圖所示:

WSA高級體系結構

該高級體系結構組織如下:

客戶端,Web服務消費者:它是J2ME應用程序,例如MIDP或個人版基于框架的應用程序,JSR172存根和支持類,以及JSR172運行時。
網絡:指的是無線和有線網絡以及通信協議,無線和有線網絡是Internet的一部分。注意JSR172本身沒有規定在設備上使用XML編碼方法,而允許執行程序(只要它們對消費者和生產者是透明的)使用更有效的編碼方法,例如在設備和無線網關之間使用二進制協議。
服務器,Web服務生產者:它是一個Web服務器,通常位于防火墻和/或代理網關的后面。該服務器可以訪問后臺資源。
調用模型和數據流與標準Web服務相同:

J2ME應用程序通過JSR172存根和運行時調用遠程服務,通常要通過HTTP和SOAP來進行傳輸。存根和運行時將與遠程服務調用相關的復雜部分都隱藏起來了,包括輸入值和返回值如何編碼并解碼,以及與服務器進行網絡通信的管理。方法調用遵循同步請求-應答模型,如下圖所示:

圖2-JSR172調用模型

JSR172調用模型

*由于調用是按模塊進行的,所以您應該把這些調用分派到不同的執行線程中。#p#

消費Web服務

要消費Web服務,您必須首先創建服務調用存根。讓這些存根來執行任務,例如對輸入值和返回值進行編碼和解碼、與JSR172運行時交互來調用遠程服務端點。存根通過運行時的服務提供者接口(SPI)與運行時進行交互,這樣通過概述運行時執行的詳細情況,使存根在不同廠商之間的執行更便捷。

存根通常是用工具生成的,該工具讀取一個WSDLXML文檔,文檔描述了將要使用到的Web服務。同樣的,WSDL文檔通常也是通過工具生成的,該工具讀取接口定義,例如Java接口產生了WSDL文檔。

從我們移動開發的角度來看,需要消費的WSDL文檔通常已經存在,您需要做的僅僅是生成JSR172WSA存根。要生成這些存根,您應該使用例如J2MEWirelessToolkit2.1存根生成器這樣的工具,如下圖所示:

圖3-生成JSR172WSA存根

生成JSR172WSA存根

該生成器生成存根Java文件,以及相關的支持類。如下一部分所描述的,它還考慮到了WSDL到Java的數據類型映射。

一旦生成了JSR172JAX-RPC存根和支持文件,您的應用程序就已經被編譯并部署到啟用了JSR172的設備上了,消費Web服務是很簡單的而且幾乎是透明的。您很快就會看到,調用遠程方法幾乎和調用本地方法一樣簡單。

JSR172JAX-RPC子集API

JSR172遠程方法調用API是以基于XML的RPC的J2SEJavaAPI(JAX-RPC1.1)的子集為基礎的。它同樣遵守WS-I基本概要。下面來詳細研究一下JSR172JAX-RPC子集API:

它支持:

SOAP1.1。
任何可以傳送SOAP消息的傳輸,例如HTTP1.1,都有一個定義好的用于SOAP1.1的協議綁定。
SOAP消息的文字表示代表一個RPC調用或應答。

下面(是)數據類型和相應的Java映射:

xsd:boolean到boolean或Boolean。
xsd:byte到byte或Byte。
xsd:short到short或Short。
xsd:int到int或Integer。
xsd:long到long或Long。
xsd:float到float,或Float。對基于CLDC1.0的平臺,該數據類型映射到String。
xsd:double到double,或Double。對基于CLDC1.0的平臺,該數據類型映射到String。
xsd:string到String。
xsd:base64Binary到byte[]。
xsd:hexBinary到byte[]。
xsd:complexType到基本類型和類類型序列。
xsd:QName到javax.xml.namespace.QName。

以XML數組模式為基礎的基本類型和復雜類型(結構中包含基本類型或復雜類型)數組。

它不支持:

帶附件的SOAP消息。
SOAP消息處理器。
SOAP消息的編碼表示。
服務端點(不是Web服務生產者)。
服務發現支持(UDDI)。

設備端沒有規定XML編碼方法。這樣做是通過允許執行程序使用更有效的數據編碼方法來幫助減少網絡傳輸,例如在設備和無線網關間使用二進制協議(只要這樣編碼對消費者和生產者是透明的)。

JSR172遠程調用API包括下面這些包:

javax.microedition.xml.rpc
javax.xml.namespace
javax.xml.rpc
java.rmi(包括確保JAX-RPC相關型)
注意這些API(有一些異常API,例如RemoteException)不是直接由應用程序調用,相反,應用程序調用生成的存根。上面的API主要是供存根使用的。有關詳細信息請參閱JSR172規范和/或Java文檔。

使用JSR172JAX-RPC調用遠程服務

一旦生成、編譯并部署了JSR172JAX-RPC存根和支持文件,消費遠程服務就很容易了。事實上,除了導入RemoteException,完成最少量的JAX-RPC細節初始化工作,您的應用程序不光是看上去,而且運行起來也和非Web服務消費者應用程序一樣。由于有JSR172存根和運行時,實現這種簡單的應用程序是可能的,正如前面提到的,JSR172存根和運行時把與遠程調用相關的大部分細節都隱藏了。

要調用遠程服務,您首先需要實例化存根,完成最少的存根初始化工作,然后就是如何編寫調用存根方法。下面的代碼片斷顯示了如何使用JSR172JAX-RPC調用遠程服務。
 

【編輯推薦】

  1. J2ME Unit單元測試技術簡介
  2. J2ME對話框選擇功能實現原理
  3. J2ME數據結構中Hashtable和Vector的使用
  4. 調用Netbeans IDE集成Motorola J2ME SDK5.4.2
  5. 技術分享 如何整合SE J2ME SDK與eclipse開發環境 

 

責任編輯:佚名 來源: soft6.com
相關推薦

2010-10-09 15:07:09

J2MEWeb服務

2010-09-29 08:57:04

J2ME前景

2010-09-29 10:41:18

J2MEJVM

2010-09-29 13:23:12

J2MEPIM

2009-06-17 11:27:00

setClip方法J2ME

2009-07-09 16:06:10

JDK J2EE J2

2010-09-30 09:56:26

J2ME Polish

2010-09-29 09:19:39

J2ME開發工具

2009-10-10 13:54:20

OPhone

2011-12-12 16:47:38

J2MESOAP協議

2010-09-30 13:39:52

2011-06-20 06:22:21

ibmdwJavaWeb

2010-09-30 12:53:00

J2MECSS

2010-09-30 13:28:55

J2ME圖形

2009-06-23 11:30:16

RMSJ2ME

2009-03-22 09:38:03

Android移植J2ME

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2011-09-05 18:57:36

MTKJ2ME

2010-09-29 13:50:31

J2MEJ2SE

2010-09-29 10:15:35

JDKJ2EEJ2SE
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久国产一区二区三区 | 国产高潮好爽受不了了夜色 | аⅴ资源新版在线天堂 | 自拍在线 | 97成人精品 | 欧美高清性xxxxhd| 国产成人精品免高潮在线观看 | 日本视频中文字幕 | 久久精品亚洲国产 | 国产一级网站 | 国产成人区| 亚洲顶级毛片 | 欧美三区在线观看 | 日本激情视频网 | 国产精品久久久久久久7777 | 国产区在线 | 成人精品影院 | 宅男伊人 | 一级毛片视频在线 | a级在线 | 久久久999精品 | 中文字幕一区二区三区精彩视频 | 99久久婷婷国产精品综合 | www.日韩| 女人精96xxx免费网站p | 精品99久久 | 给我免费的视频在线观看 | 国产精品无码永久免费888 | 久久在线| 免费一级片 | 91一区二区三区 | 午夜精品福利视频 | 亚洲视频欧美视频 | 中文字幕成人在线 | 成人在线视频免费看 | 中文字幕在线观看视频一区 | 欧美专区在线视频 | 国产色片在线 | 亚洲伦理自拍 | 亚洲一区在线播放 | 日韩久久在线 |