JSR 172 為 J2ME 引入標準 Web 服務支援,包含遠端服務調用(JAX-RPC 子集)與 XML 解析兩個可選包,針對 CLDC 1.0/1.1 與 CDC 架構。開發者無需自行實作 SOAP/WSDL 處理,大幅簡化企業級整合。
| XML Schema | Java 映射 | 備註 |
|---|---|---|
| xsd:boolean | boolean / Boolean | |
| xsd:byte/short/int/long | byte/short/int/long (及包裝類) | |
| xsd:float/double | float/double (CLDC 1.0 對應 String) | CLDC 1.0 無浮點支援 |
| xsd:string | String | |
| xsd:base64Binary/hexBinary | byte[] | |
| xsd:complexType | 基本型別與類別序列 | |
| xsd:QName | javax.xml.namespace.QName | |
| 陣列 | 基本/複雜型別陣列 | 基於 XML 陣列模式 |
javax.microedition.xml.rpc、javax.xml.namespace、javax.xml.rpc、java.rmi(含 RemoteException 等)。應用程式通常不直接呼叫,而是透過工具產生的 Stubs 使用。
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 架構的企業行動化專案。