亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

解析用于J2ME 開發平臺的 Web 服務 API

2019-11-17 06:24:05
字體:
來源:轉載
供稿:網友

  用于 java 2 平臺袖珍版 (Java 2 Platform, Micro Edition,J2ME) 的 Web 服務 API (WSA) 是由 Java Community PRocess 為 Java 規范請求 172 (JSR 172) 而定義的,這些 API 是兩個相互獨立的可選包,用于遠程服務調用和 xml 解析。
  
  他們是針對基于連接設備配置 (Connected Device Configuration,CDC) 和有限連接設備配置 (Connected Limited Device Configuration,CLDC 1.0 和 CLDC 1.1) 的框架的。為什么用戶應該關注這些呢?因為 JSR 172 在設備層為遠程服務調用和 XML 解析提供了支持,也就意味著開發人員不用將這項功能嵌入到每一個應用程序中。本文介紹了遠程服務調用可選包 API。
  
  J2ME 中的 Web 服務
  
  Java 2 平臺袖珍版 (J2ME) 平臺中的 Web 服務是由 Java 規范請求 172 (JSR 172) 定義的,它與標準 Web 服務遵循同樣的規范、結構以及調用模型。我們往返顧一下清單。
  
  與標準 Web 服務的比較 JSR 172 Web 服務 API (WSA) 遵循下面這些核心 Web 服務規范:
  
  簡單對象訪問協議 (SOAP) 1.1,定義傳輸和數據編碼。
  Web 服務定義語言 (WSDL) 1.1,定義如何描述遠程服務。
  XML 1.0,定義 XML 標記語言。
  XML Schema,毫無疑問,定義 XML 模式。
  注重 JSR 172 不支持統一描述、發現和集成 (UDDI) 2.0 規范,該規范定義了如何發現遠程服務。
  
  由于有相當多的與 Web 服務相關并且涵蓋了不同技術的規范出臺,而且越來越多,Web 服務互操作組織 (WS-I) 定義了 WS-I 基本概要 1.0 (WS-I Basic Profile,Version 1.0) 來定義 Web 服務規范的最小集,和一致性規則一樣,所有的基礎 Web 服務提供者和消費者都必須遵守該概要。JSR 172 規范也遵守 WS-I 基本概要。
  
  與標準 Web 服務具有相同的體系結構:
  
  JSR 172 WSA 從客戶端訪問 Web 服務,從服務-消費者的角度來看,WSA 提供遠程服務調用 API (JAX-RPC) 以及運行時環境,從而答應 J2ME 應用程序在 Web 上消費服務,而不是作為服務生產者(端點)來運行。除了這一點差別之外,JSR 172 WSA 體系結構的其它部分與 Web 服務的標準體系結構/組織一致,如下圖所示:
  
 解析用于J2ME 開發平臺的 Web 服務 API(圖一)

  
圖 1 - WSA 高級體系結構

  
  該高級體系結構組織如下:
  
  客戶端,Web 服務消費者:它是 J2ME 應用程序,例如 MIDP 或個人版基于框架的應用程序,JSR 172 存根和支持類,以及 JSR 172 運行時。
  
  網絡:指的是無線和有線網絡以及通信協議,無線和有線網絡是 Internet 的一部分。注重 JSR 172 本身沒有規定在設備上使用 XML 編碼方法,而答應執行程序(只要它們對消費者和生產者是透明的)使用更有效的編碼方法,例如在設備和無線網關之間使用二進制協議。
  
  服務器,Web 服務生產者:它是一個 Web 服務器,通常位于防火墻和/或代理網關的后面。該服務器可以訪問后臺資源。
  
  調用模型和數據流與標準 Web 服務相同: J2ME 應用程序通過 JSR 172 存根和運行時調用遠程服務,通常要通過 HTTP 和 SOAP 來進行傳輸。存根和運行時將與遠程服務調用相關的復雜部分都隱藏起來了,包括輸入值和返回值如何編碼并解碼,以及與服務器進行網絡通信的治理。方法調用遵循同步請求-應答模型,如下圖所示:
  
 解析用于J2ME 開發平臺的 Web 服務 API(圖二)

  
圖 2 - JSR 172 調用模型

  
  由于調用是按模塊進行的,所以您應該把這些調用分派到不同的執行線程中。
  
  消費 Web 服務
  
  要消費 Web 服務,您必須首先創建服務調用存根。讓這些存根來執行任務,例如對輸入值和返回值進行編碼和解碼、與 JSR 172 運行時交互來調用遠程服務端點。存根通過運行時的服務提供者接口 (SPI) 與運行時進行交互,這樣通過概述運行時執行的具體情況,使存根在不同廠商之間的執行更便捷。
  
  存根通常是用工具生成的,該工具讀取一個 WSDL XML 文檔,文檔描述了將要使用到的 Web 服務。同樣的,WSDL 文檔通常也是通過工具生成的,該工具讀取接口定義,例如 Java 接口產生了 WSDL 文檔。
  
  從我們移動開發的角度來看,需要消費的 WSDL 文檔通常已經存在,您需要做的僅僅是生成 JSR 172 WSA 存根。要生成這些存根,您應該使用例如 J2ME Wireless Toolkit 2.1 存根生成器這樣的工具,如下圖所示:
  
解析用于J2ME 開發平臺的 Web 服務 API(圖三)

  
圖 3 - 生成 JSR 172 WSA 存根

  
  該生成器生成存根 Java 文件,以及相關的支持類。如下一部分所描述的,它還考慮到了 WSDL 到 Java 的數據類型映射。
  
  一旦生成了 JSR 172 JAX-RPC 存根和支持文件,您的應用程序就已經被編譯并部署到啟用了 JSR 172 的設備上了,消費 Web 服務是很簡單的而且幾乎是透明的。您很快就會看到,調用遠程方法幾乎和調用本地方法一樣簡單。
  
  JSR 172 JAX-RPC 子集 API JSR 172 遠程方法調用 API 是以基于 XML 的 RPC 的 J2SE Java API (JAX-RPC 1.1) 的子集為基礎的。它同樣遵守 WS-I 基本概要。下面來具體研究一下 JSR 172 JAX-RPC 子集 API:
  
  它支持:
  
  SOAP 1.1。 任何可以傳送 SOAP 消息的傳輸,例如 HTTP 1.1,都有一個定義好的用于 SOAP 1.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。對基于 CLDC 1.0 的平臺,該數據類型映射到 String。
  xsd:double 到 double,或 Double。對基于 CLDC 1.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 編碼方法。這樣做是通過答應執行程序使用更有效的數據編碼方法來幫助減少網絡傳輸,例如在設備和無線網關間使用二進制協議(只要這樣編碼對消費者和生產者是透明的)。
  
  JSR 172 遠程調用 API 包括下面這些包:
  
  javax.microedition.xml.rpc
  javax.xml.namespace
  javax.xml.rpc
  java.rmi (包括確保 JAX-RPC 相關型)
  注重這些 API(有一些異常 API,例如 RemoteException)不是直接由應用程序調用,相反,應用程序調用生成的存根。上面的 API 主要是供存根使用的。
  
  使用 JSR 172 JAX-RPC 調用遠程服務一旦生成、編譯并部署了 JSR 172 JAX-RPC 存根和支持文件,消費遠程服務就很輕易了。事實上,除了導入 RemoteException,完成最少量的 JAX-RPC 細節初始化工作,您的應用程序不光是看上去,而且運行起來也和非 Web 服務消費者應用程序一樣。由于有 JSR 172 存根和運行時,實現這種簡單的應用程序是可能的,正如前面提到的,JSR 172 存根和運行時把與遠程調用相關的大部分細節都隱藏了。
  
  要調用遠程服務,您首先需要實例化存根,完成最少的存根初始化工作,然后就是如何編寫調用存根方法。下面的代碼片斷顯示了如何使用 JSR 172 JAX-RPC 調用遠程服務。
  
  清單 1:調用遠程服務
  
  package j2medeveloper.wsasample
  
  // MIDP
  import javax.microedition.midlet.MIDlet;
  import javax.microedition.lcdui.Display;
  import javax.microedition.lcdui.Form;
  
  ...
  
  Form form = new Form("Employee Info");
  
  ...
  
  // JAX-RPC
  import java.rmi.RemoteException;
  String serviceURL = "www.j2medeveloper.com/webservicesample";
  
  ...
  
  /**
   * Entry point to MIDlet, from start or restart states.
   * @throws javax.microedition.midlet.MIDletStateChangeException
   */
  public void startApp() throws MIDletStateChangeException {
  // Instantiate the service stub.
  EmployeeService_Stub service = new EmployeeService_Stub();
  // Initialize the stub/service.
  service._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,
      serviceURL);
  service._setProperty(Stub.session_MAINTAIN_PROPERTY, new
      Boolean(true));
  ...
  display.setCurrent(mainScreen);
  }
  
  /**
   * Paused state. Release resources (connection, threads, etc).
   */
  public void pauseApp() {
  ...
  }
  
  /**
   * Destroy state. Release resources (connection, threads, etc).
   * @param UC If true when t

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲免费av电影| 国产婷婷97碰碰久久人人蜜臀| 色综合色综合网色综合| 91免费福利视频| 亚洲美腿欧美激情另类| 欧美日韩精品国产| 91精品国产91久久久久久吃药| 日韩中文字幕网| 色综合久综合久久综合久鬼88| 欧美激情精品久久久久久变态| 在线电影欧美日韩一区二区私密| 亚洲视频在线播放| 这里精品视频免费| 国产成人a亚洲精品| www.久久久久| 欧美高清在线观看| 国产成人拍精品视频午夜网站| 亚洲精品999| 精品一区二区三区三区| 国产精选久久久久久| 亚洲视频网站在线观看| 成人有码视频在线播放| 国产视频在线一区二区| 麻豆乱码国产一区二区三区| 国产精品入口免费视频一| 欧美最猛性xxxxx免费| 中文字幕在线成人| 超碰精品一区二区三区乱码| 亚洲三级黄色在线观看| 日韩av一区二区在线观看| 欧美激情欧美狂野欧美精品| 美日韩精品免费观看视频| 国产精品久久久久久久久粉嫩av| 91九色单男在线观看| 菠萝蜜影院一区二区免费| 久久亚洲精品国产亚洲老地址| 国产精品99久久久久久白浆小说| 亚洲午夜久久久久久久| 中文字幕视频一区二区在线有码| 精品国产成人在线| 在线亚洲午夜片av大片| 国产精品自产拍在线观看| 日韩av网址在线观看| 亚洲欧洲自拍偷拍| 亚洲精品美女网站| 欧美激情久久久久| 色婷婷**av毛片一区| 97免费视频在线| 久久99久国产精品黄毛片入口| 自拍视频国产精品| 欧美日韩电影在线观看| 国产成人福利网站| 91精品视频在线免费观看| 亚洲人成电影网站色| 少妇av一区二区三区| 欧美性猛交xxxx富婆| 性欧美在线看片a免费观看| 久久久久久久影视| 中文亚洲视频在线| 久久久久中文字幕| 久久久久久这里只有精品| 日韩精品在线观看网站| 欧美日韩中文在线| 欧美裸体xxxx极品少妇| 国产亚洲免费的视频看| 成人精品久久一区二区三区| 成人免费视频在线观看超级碰| 国产视频精品自拍| 亚洲国产毛片完整版| 国产精品com| 国产欧美日韩免费| 91精品久久久久久久久| 国产精品久久久久久一区二区| 久久偷看各类女兵18女厕嘘嘘| 在线日韩日本国产亚洲| 国产精品成久久久久三级| 成人精品福利视频| 久久久久久12| 亚洲高清免费观看高清完整版| 久久精品亚洲国产| 亚洲开心激情网| 美女av一区二区| 国内精品在线一区| 国内外成人免费激情在线视频网站| 日韩欧美a级成人黄色| 96pao国产成视频永久免费| 92裸体在线视频网站| 一区二区av在线| 日韩在线视频中文字幕| 亚洲欧美国产精品| 国产精品视频xxx| 欧美日韩激情小视频| 久久综合九色九九| 欧美国产亚洲精品久久久8v| 久久免费福利视频| 色综合男人天堂| 97香蕉超级碰碰久久免费的优势| 国产精品高清在线| 综合136福利视频在线| 亚洲精品视频播放| 日韩中文在线不卡| 日韩av片免费在线观看| 亚洲欧美中文在线视频| xxxxx91麻豆| 国产精品久久久久久久久久久久| 国产成人精品在线播放| 中文字幕欧美视频在线| 亚洲欧美日本另类| 中文字幕日韩av电影| 97超视频免费观看| 国产精品免费久久久| 日韩电影在线观看免费| 国产精品精品一区二区三区午夜版| 在线观看国产欧美| 免费91在线视频| 91精品国产综合久久香蕉| 国产精品夜色7777狼人| 6080yy精品一区二区三区| 欧美伊久线香蕉线新在线| 日韩在线国产精品| 26uuu亚洲伊人春色| 欧美成人黑人xx视频免费观看| 全亚洲最色的网站在线观看| 亚洲r级在线观看| 欧美午夜xxx| 欧美午夜精品久久久久久浪潮| 亚洲男人天堂网站| 久久成人国产精品| 久久精品国产精品| 91视频8mav| 久久精品亚洲一区| 欧美裸体视频网站| 91久久精品日日躁夜夜躁国产| 国产欧美一区二区三区在线| 成人a级免费视频| 日韩欧美在线视频日韩欧美在线视频| 日韩在线播放视频| 精品精品国产国产自在线| 亚洲网站视频福利| 国产精品美女免费看| 欧美日韩国产页| 久久久精品影院| 怡红院精品视频| 亚洲欧美日本精品| 亚洲国产精品yw在线观看| 久久久亚洲福利精品午夜| 日本久久久久久久久久久| 人九九综合九九宗合| 自拍偷拍亚洲欧美| 亚洲精品日韩激情在线电影| 精品亚洲一区二区| 久久乐国产精品| 久久成人人人人精品欧| 欧美精品videofree1080p| 亚洲视频在线观看免费| 国产美女高潮久久白浆| 综合136福利视频在线| 国产ts人妖一区二区三区| 亚洲已满18点击进入在线看片| 欧美性猛交xxxx偷拍洗澡| 亚洲色图美腿丝袜| 欧美另类99xxxxx| 国产精品十八以下禁看| 亚洲少妇激情视频|