首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> J2ME >> 联网开发 >> 正文
解析用于J2ME开发平台的Web服务API(二)
作者:佚名    文章来源:IBM DW C. Enrique Ortiz    更新时间:2006-12-7 17:22:31

消费 Web 服务

要消费 Web 服务,您必须首先创建服务调用存根。让这些存根来执行任务,例如对输入值和返回值进行编码和解码、与 JSR 172 运行时交互来调用远程服务端点。存根通过运行时的服务提供者接口 (SPI) 与运行时进行交互,这样通过概述运行时执行的详细情况,使存根在不同厂商之间的执行更便捷。

存根通常是用工具生成的,该工具读取一个 WSDL XML 文档,文档描述了将要使用到的 Web 服务。同样的,WSDL 文档通常也是通过工具生成的,该工具读取接口定义,例如 Java 接口产生了 WSDL 文档。

从我们移动开发的角度来看,需要消费的 WSDL 文档通常已经存在,您需要做的仅仅是生成 JSR 172 WSA 存根。要生成这些存根,您应该使用例如 J2ME Wireless Toolkit 2.1 存根生成器这样的工具,如下图所示:

图 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 主要是供存根使用的。

相关文章:
在无线J2ME设备上实现http传输
J2ME主要标准简介
单例模式的RMS访问类
JSR184简单射击游戏示例
cookie技术在Java ME平台的应用与实现
J2ME程序与Servlet通讯访问Access数据库
无线消息 API JSR-205 JSR-102 整理
J2ME(WTK)配置方法
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号