首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

J2ME Web 服務 API (JSR 172) 深度解析:遠端服務調用與 XML 解析實作

     編輯:Java 程式設計入門

前言

JSR 172 為 J2ME 引入標準 Web 服務支援,包含遠端服務調用(JAX-RPC 子集)與 XML 解析兩個可選包,針對 CLDC 1.0/1.1 與 CDC 架構。開發者無需自行實作 SOAP/WSDL 處理,大幅簡化企業級整合。

一、標準相容性與架構

  • 遵循 SOAP 1.1、WSDL 1.1、XML 1.0、XML Schema 核心規範。
  • 不支援 UDDI 2.0(服務發現)。
  • 符合 WS-I Basic Profile 1.0 互操作性規範。
  • 架構與標準 Web 服務一致:J2ME 應用為服務消費者,透過 Stubs 與 Runtime 呼叫遠端端點(HTTP+SOAP),同步請求-回應模型。建議將調用派發至背景執行緒。

二、支援資料型別映射 (WSDL → Java)

XML SchemaJava 映射備註
xsd:booleanboolean / Boolean
xsd:byte/short/int/longbyte/short/int/long (及包裝類)
xsd:float/doublefloat/double (CLDC 1.0 對應 String)CLDC 1.0 無浮點支援
xsd:stringString
xsd:base64Binary/hexBinarybyte[]
xsd:complexType基本型別與類別序列
xsd:QNamejavax.xml.namespace.QName
陣列基本/複雜型別陣列基於 XML 陣列模式

三、不支援功能

  • SOAP 附件、訊息處理器、編碼表示
  • 服務端點(不做生產者)、UDDI 發現
  • 裝置端未規定 XML 編碼,允許閘道器使用二進位協定優化傳輸

四、核心套件

javax.microedition.xml.rpc、javax.xml.namespace、javax.xml.rpc、java.rmi(含 RemoteException 等)。應用程式通常不直接呼叫,而是透過工具產生的 Stubs 使用。

五、開發流程:從 WSDL 到呼叫

  1. 取得描述目標 Web 服務的 WSDL 文件。
  2. 使用 J2ME Wireless Toolkit 2.1 Stubs 產生器,產生 Java Stubs 與支援類(自動處理型別映射)。
  3. 編譯、預先驗證、打包部署至支援 JSR 172 的裝置。
  4. 程式碼中實例化 Stub、設定端點 URL、Session 維持屬性,然後像呼叫本地方法一樣呼叫遠端方法。

六、程式碼範例

public void startApp() throws MIDletStateChangeException {
    EmployeeService_Stub service = new EmployeeService_Stub();
    service._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "www.example.com/ws");
    service._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
    try {
        EmployeeInfo info = service.getEmployee("123");
        // 處理回傳資料...
    } catch (RemoteException e) {
        // 錯誤處理
    }
}

七、總結

JSR 172 將企業級 Web 服務整合帶入 J2ME,隱藏 SOAP/WSDL 複雜度,讓行動應用能輕鬆消費後端服務。適用於需整合現有 SOA 架構的企業行動化專案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved