Welcome 微信登录

首页 / 软件开发 / JAVA / 利用Eclipse Modeling Framework加强JAX-RPC类型映射的功能

利用Eclipse Modeling Framework加强JAX-RPC类型映射的功能2011-03-11 IBM Jeffrey Liu引言

JAX-RPC,也称为 JSR-101,是完成标准编程模型的一个重要步骤,该标准编程模型简化了 Java™ 平台上可互操作的 Web 服务的构建。由 XML 向 Java 类型映射模型的转换是 JAX-RPC 的关键,该转换是 Web 服务产品提供者的一个实现标准。没有这样的模型,Web 服务产品提供者会陷入定义专用类型映射的陷阱中,从而严重影响 Java 的互操作性问题。

虽然 JAX-RPC 在支持 XML 数据类型方面做了大量的工作,但是还有很多地方需要改进。而且,JAX-RPC 需要将任何不被支持的 XML 数据类型映射到 javax.xml.soap.SOAPElement 接口。javax.xml.soap.SOAPElement 接口没有为用户提供强类型的 Java 模型,也就是说用户必须编写自定义代码,然后通过 SOAPElement 实例来解析。这对初学者来说比较难,特别是当处理大的 XML 片段的时候。本文演示了如何使用 EMF 来支持没有标准 JAX-RPC 类型映射的 XML 数据类型。使用不支持 XML 数据类型的 JAX-RPC 生成 Web 服务并非易事,但是本文把 Web 服务工具和 IBM® WebSphere® Studio Application 以及 Site Developer V5.1.2 (Application and Site Developer) 中的 EMF 工具结合起来使用,提供了一个有效的解决方案。

创建供应链 Web 服务

要实现本文所介绍的方法,必须安装 WebSphere Application 和 Site Developer V5.1.2。如果需要的话,可以下载一个 60 天的试用版。

创建一个 Web 项目。单击菜单File>New>Project...>Web > Dynamic Web Project>Next,打开 New Dynamic Web Project wizard。

输入SupplyChainWeb作为 Web 项目的名称,选中Configure advance options复选框,然后单击Next。

输入SupplyChainEAR作为 EAR 项目的名称,然后单击Finish。

单击本文顶部的Code图标,下载 SupplyChainService.wsdl 和 SupplyChainSchema.xsd 到本地文件系统中。

将 SupplyChainService.wsdl 和 SupplyChainSchema.xsd 导入或复制到 SupplyChainWeb 项目的根目录下。

在 navigator 视图中,右键单击SupplyChainService.wsdl>Web Services>Generate Java bean skeleton打开图 1所示的 WSDL to Java Bean Skeleton wizard。该向导生成一个基于 WSDL 文档中定义的信息的 Java 架构代码实现。接受所有的默认设置,然后单击Finish。

图 1.WSDL to Java Bean Skeleton wizard

向导完成之后,您会在 tasks 视图中看见一些 WSDL 验证错误,这是由于 XML 模式文件 (SupplyChainSchema.xsd) 没有被复制到正确的地方。要更正这些错误,将 SupplyChainSchema.xsd 从 SupplyChainWeb 项目的根目录下复制到 /SupplyChainWeb/WebContent/WEB-INF/wsdl/ 和 /SupplyChainWeb/WebContent/wsdl/com/example/supplychain/www/ 这两个目录中。右键单击SupplyChainService.wsdl>Run validation,再次运行验证。