新的JAX-WS 展现优势

日期: 2008-03-30 作者:William Brogden 来源:TechTarget中国 英文

最新的基于Java的Web服务开发人员工具集是Sun的Java Web Services Developer Pack (JWSDP),现在已经是2.0版本了。上一轮JWSDP的开发截止于1.6版,在2005年年中发布。该版本在很多工具中使用了更好的集成技术。而在2.0版中,JAX-RPC (Java API for XML based Remote Procedure Calls)工具集已经不见了,取而代之的是新的JAX-WS,Java API for XML Web Services。

  官方认为JWSDP的目的在于在Sun Java System Application Server ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

最新的基于Java的Web服务开发人员工具集是Sun的Java Web Services Developer Pack (JWSDP),现在已经是2.0版本了。上一轮JWSDP的开发截止于1.6版,在2005年年中发布。该版本在很多工具中使用了更好的集成技术。而在2.0版中,JAX-RPC (Java API for XML based Remote Procedure Calls)工具集已经不见了,取而代之的是新的JAX-WS,Java API for XML Web Services。

  官方认为JWSDP的目的在于在Sun Java System Application Server Platform version 8.1或更高版本上支持Web service开发。JWSDP安装和Sun的教程都以此为用户使用的前提。JWSDP中的很多组件工具集,包括JAX-WS文件,在Sun的发布说明中都没有被称为可重新发布的。但是,包括JAX-WS在内的很多组件在GlassFish开源服务器项目中却可以使用。Glassfish受到Sun的"Common Development and Distribution License"管制,或许可以在你的应用中使用。

  的确,两个JAX-WS版本会发生混淆。例如,JWSDP的JAX-WS版对早期访问被标注为“EA”,而GlassFish中的版本对引用实现则被标注为“RI”。JAX-WS说明书的最终版本被作为Java Community Process的产品JSR 224,在五月已经发布了。因此,我们可以用最新的版本。

  JAX-WS 2.0 Specification的目标

  JSR 224 specification全文有149页的 PDF文档。所以,我只能简单的叙述一下。以下是JAX-WS 2.0的目标:

  加固数据绑定

  以前,在the JAXB (Java API for XML Binding)和JAX-RPC (Java API for XML Remote Procedure Calls)中都有数据绑定工具。这显然是混淆的,因此JAX-WS只选择了JAXB 2.0.我以前对JAXB有更详细的文章。

  支持不断演化的标准

  尽管很多现在的Web services选择了SOAP 1.1标准作为协议、格式和Web service消息的语法,但SOAP 1.2标准已经出台了一段时间,而且应该会被越来越多的应用。JAX-WS将支持SOAP 1.2,并且支持早期的SOAP 1.1。由于SOAP 1.2改变了一些SOAP消息的语法,所以这不是个小问题。当SOAP刚出现时,它被Simple Object Access Protocol支持。但由于很多人觉得SOAP并不简单,而且对对象并没什么用,我们只称它为SOAP,而不附加什么含义。

  类似的演化标准还有WSDL(Web Service Description Language),它被广泛用在各种Web services中。WSDL文档是一个XML格式的文件,描述了与一个Web service联系所需要的细节。当前在用的版本是1.1版,它并非是真正的W3C标准。尽管W3C最近批准了2.0版本,但JAX-WS最近还没有打算支持它。

  另一个在演化的标准是Web Services Interoperability Organization。WS-I Basic Profile已经发展了,因为SOAP标准不足以良好定义来确保所有的Web service工具集都可以彼此交互。JAX-WS会顺应该领域的发展。

  利用Java语言的高级特性

  Java能够为源代码提供某种形式的注释,即用javadoc工具处理一套以@开头的注释关键字,生成HTML格式的文档。这些文档注释不会在已编译的Java类中消失。

  最新版本的Java 5或Java 1.5能够在你关注的文档处添加一种重要的新特性。这是一种可以被编译到类中并能在运行时访问的注释。你可以把这些注释想象成描述一个类如何被使用的元数据。例如,它如何被作为Web service访问。

  下面JAX-WS样例Java 源文件AddNumbersIF.java中的是两个注释,它让一个Web service返回两个数的和。

  @WebService(targetNamespace = "http://duke.org", name="AddNumbers")
  @WebMethod(operationName="add", action="urn:addNumbers")

  由于这些注释生成在已编译的类中,因此处理已编译的Java类的JAX-WS工具能用Java反射机制获取程序员设计这些类的意图的额外信息。

  独立传输

  由于我们正在探讨Web service,人们就会忘记SOAP消息传输并没有被HTTP限制。已经有很多利用email 或者Java Message Service来传输的应用了。JAX-WS API文档指出,它想要改进在XML消息格式和低层传输机制之间的隔离,进而用非HTTP传输简化JAX-WS的使用。使用其它传输机制的样例看起来落后于HTTP Web service样例的开发,但我已经在Glassfish项目中找到了使用Java Message Service的一个例子。

相关推荐