WEB开发网
开发学院软件开发Java Java Web 服务: Axis2 中的 JAXB 和 JAX-WS 阅读

Java Web 服务: Axis2 中的 JAXB 和 JAX-WS

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 另一个问题是,XJC 提供了大量代码生成选项以及许多定制来控制针对某一特定模式组件的代码生成细节 — 但是 WSDL2Java 没有提供任何方法来将这些选项或定制传递给 XJC,Java Web 服务: Axis2 中的 JAXB 和 JAX-WS(8),因此代码生成将始终按照默认设

另一个问题是,XJC 提供了大量代码生成选项以及许多定制来控制针对某一特定模式组件的代码生成细节 — 但是 WSDL2Java 没有提供任何方法来将这些选项或定制传递给 XJC,因此代码生成将始终按照默认设置运行。如果需要使用任何代码生成选项或定制,可能需要单独运行 XJC 和 WSDL2Java。不幸的是,无法在 WSDL2Java 代码生成中使用单独生成的 JAXB 数据模型。如果需要使用定制的 JAXB 数据模型,最佳办法可能就是运行 WSDL2Java 以生成其自己的 JAXB 代码模型,然后再换入您单独生成的数据模型类,并根据需要手动修改代码来将所有内容联合到一起。或者,可以像下一小节介绍的那样使用 JAX-WS,这将使您完全跳过 WSDL2Java,但是存在一些明显的限制。

在 Axis2 中使用 JAX-WS

虽然可以将 JAXB 作为 Axis2 中的另一种数据绑定替代选择,但是它与 JAX-WS 之间的区别更加显著。JAX-WS 是一种截然不同的 Web 服务定义方法,它全面取代了标准的 Axis2 服务器端和客户端配置。您使用 JAX-WS 参考实现中附带的 WsImport 工具从 WSDL 中生成 JAX-WS 代码,而不是使用 WSDL2Java。甚至部署机制也不同于 Axis2 中通常使用的 AAR 文件方法。

代码 下载 部分只提供了早先使用的同一样例应用程序的不同版本,这个版本进行了修改,用于演示 JAX-WS 在 Axis2 中的使用。代码位于下载中的 jaxws 目录中,并且它带有自己的 WSDL、build.properties 和 build.xml。这个 JAX-WS 版本的 WSDL 基本上与用于 JAXB 的 WSDL 相同,如 清单 1 所示。该 WSDL 的主要区别在于它对应用程序代码使用了内嵌的模式,而这对于使用 JAXB 数据绑定的 WSDL2Java 来说是不可行的。

当使用 JAX-WS 的 WsImport 工具从 WSDL 创建代码时,将获得与使用 WSDL2Java 实现 JAXB 代码生成时相同的 JAXB 数据模型和封装器类。不同之处在于链接(linkage)代码,对于 JAX-WS,链接代码包含一个生成的服务接口和一个客户端服务构建器类。接口类,如 清单 5(稍微进行了重新格式化,并且只保留了一个方法注释)所示,定义了与 WSDL 中的操作匹配的方法。客户机代码和服务器代码都使用这个接口。接口中的大量注释提供了所有必需配置信息,帮助 JAX-WS 将服务接口与该服务的操作的接口方法关联起来。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Java Web 服务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接