快速业务通道

Java Web服务,第3部分: Axis2数据绑定 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
出类和文件的目标目录(缺省输出到工作目录)

-p package-name — 设置生成的类的目标包(缺省为从 WSDL 命名空间生成)

-d name — 设置数据绑定框架(adb 表示 ADB,xmlbeans 表示 XMLBeans,jibx 表示 JiBX 以及 none 表示无数据绑定;adb 为缺省选项)

-uw — 取消 doc/lit-wrapped 消息的包装,仅适用于受支持的框架(目前包括 ADB 和 JiBX)

-s — 仅生成同步客户机接口

-ss — 生成服务器端代码

-sd — 生成服务器端部署文件

-uri path — 为要生成的服务设置指向 WSDL 的路径

还有一些专门针对特定数据绑定框架的 WSDL2Java 选项。稍后讨论数据绑定示例时会看 到几个此类选项。

从代码生成 WSDL

Axis2 还提供了 Java2WSDL 工具,可用于从现有服务代码生成 WSDL 服务定义。不过, 此工具有很多限制,包括无法使用 Java 集合类以及在从 Java 类生成的 XML 的结构处理方 面不灵活。造成这些限制的部分原因是,由于 Web 服务开发方式的改变,使得大家对此领域 没有太多的兴趣。

总的说来,Web 服务和 SOA 领域的很多权威都对从现有代码生成 Web 服务不屑一顾。他 们感觉从代码着手会增加 XML 消息结构与特定实现间的偶合,而 Web 服务的总体原则是 XML 应该独立于实现。对此当然有很多支持的声音,但也有人表示反对。其中一个原因涉及 到从头编写 WSDL 服务和 XML 模式定义的困难性。WSDL 和模式都是复杂的标准,用于处理 这些定义的可用工具都要求对标准足够了解,才能够有效地加以使用。如果开发人员在不以 标准为基础的情况进行此工作,所得到的 WSDL 和模式经常比从代码生成的更为凌乱。另一 个问题非常现实。开发人员通常拥有实现某个功能的现有代码,需要将其作为 Web 服务公开 ,而他们希望能够在不用进行大量更改的情况下使用现有代码。因此从代码生成 WSDL 在可 预知的未来一段时间内将仍然可能是个需要考虑的问题。

如果希望使用更为强大的工具代替 Java2WSDL,可以尝试我开发的 Jibx2Wsdl(有关更多 信息,请参见参考资料)。Jibx2Wsdl 可从提供的一个或多个服务类生成完整的 WSDL 绑定 、模式绑定和 JiBX 绑定定义。它支持 Java 5 枚举和通用集合,并同时保留了与旧版本 Java 虚拟机(Java Virtual Machine,JVM)的兼容性,可自动从 Java 源文件将 Javadoc 作为生成的 WSDL 和模式定义的文档导出。Jibx2Wsdl 还提供了广泛的自定义机制来控制服 务和 XML 表示形式从 Java 类派生的方式,其中甚至允许将 Java 5 之前的集合与类型化数 据一起使用。尽管 Jibx2Wsdl 专门设计为通过 JiBX 数据绑定框架(也是我创建的)简化将 现有类作为 Web 服务部署的工作,但生成的 WSDL 和模式都是独立于数据绑定的。可以将其 与其他 Java 数据绑定框架甚至其他平台一起使用——生成所需的一切对象,然 后去掉 JiBX 绑定并保留其他部分即可。

如果您使用 Java 5 或更高版本,则另一个备选方案是使用 Java Architecture for XML Binding (JAXB) 2.0 和 Java API for XML Web Services (JAX-WS) Annotation 来将数据 对象和服务类作为 Web 服务公开。这些 Annotation 并不提供与 Jibx2Wsdl 相同级别的自 定义,但其允许直接在源代码中嵌入配置信息,有些开发人员很喜欢这样做。Axis2 的 1.2 版为 JAXB 2.0 和 JAX-WS 提供了试验支持,这而且会在将来的版本中进一步改进。 Jibx2Wsdl 以后的版本也可能支持使用 JAXB 2.0 和 JAX-WS Annotation 进行自定义。(本 系列后续文章中将更为深入地讨论 JAXB 2.0 和 JAX-WS,请关注关于从代码生成 WSDL 的这 个主题。)

数据绑定的比较

Axis2(对于 1.2 版)完全支持三种数据绑定备选方案,而且目前正在进行添加更多绑定 支持的工作。本文将

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号