本文根据SUN官方网站Enterprise Java Technologies Tech Tips栏目上的一篇文章改写的,所有过程均调试通过。
一.前言
SOA思想的核心在于"S",凡是从服务的角度去看待系统功能,并且构建和实现应用,都可以认为是SOA的某种实现形式。下面一段要说的是:SOA技术的核心在于"O"--只有做到Service-Orientation的技术,才能真正称为SOA技术。
怎样才能算作Service-Orientation?我们再以OO进行类比:VB之所以被称为基于对象(Object-Based)而不是面向对象(Object-Oriented)的语言,是因为VB的运行时结构不具有VMT等基本构造,语法上也不支持私有成员,继承等基础特性,两者结合,就造成无法支持封装,继承,多态等面向对象的关键技术。一句话,VB不是围绕“对象”这个核心概念设计的语言。对于SOA技术,它也可以从这个角度划分两个层次:一个是SOA的“运行时”相关结构标准,例如SOAP,WSDL,WS-*等,相当于OO中的对象内部结构,VMT构造等。另外一个则是语言和工具层面的支持,例如基于元数据的服务描述,支持Web Service的类库,Proxy生成工具等,相当于OO语言中提供的基本OO语法,类库,编绎器等。这两个层次共同构成SOA体系结构中的要素,让人们能够围绕“服务”这个核心概念进行系统开发和应用。因此,一种技术架构,平台或产品要称作SOA,应当同时具备这一两方面的特征。
所以,下面将要讨论的JAX-WS技术,从上面的观点来看,也就是SOA技术的第二个层次,即语言和工具层面的支持--Java,例如基于元数据的服务描述,支持Web Service的类库,Proxy生成工具等.
Java API for XML Web Services(JAX-WS)2.0,是Java EE 5平台的一个重要的部分。作为Java API for XML-baseed RPC 1.1(JAX-RPC)的后续版本,在JAX-RPC 1.1中,开发人员需要写一个接口类Service Endpoint Interface(SEI),在JAX-WS 2.0中,开发人员一上来就可以直接写自己的实现类. 通过使用annotations,自动生成SEI和其他一些文件.这样有助于开发人员专注于自己想开发的部分,而不必要地分散精力去维护其他的一些附属文件.
二.快速实践JAX-WS2.0
下面通过一个两个数相加的简单例子来看看,JAX-WS 2.0 API的应用过程.程序是一个独立的客户端传给服务端两个整数,经过服务端处理后,将结果返回到客户端并打印出来.
一. 环境配置.
1. JDK 5.0 or higher
下载: http://java.sun.com/javase/downloads/index.jsp
2. Java EE 5.0 App Server.
这个例子是基于Java EE 5的一个开源实现项目GlassFish。https://glassfish.dev.java.net/public/downloadsindex.html
本例子所需的基本代码的压缩包可以通过这个链接下载。里面包括了这个例子需要的代码,构建脚本和一个build文件。
环境变量的配置:
·
GLASSFISH_HOME.
这个应该指向你安装GlassFish的目录(比如,我系统上的是:J:/Sun/AppServer)
· ANT_HOME.
这个应该指向ant所安装的目录。在你下载GlassFish bundle时Ant已经被包含在里面了。(对于Windows系统,它是在lib/ant子目录)。不过你也可以从
Apache Ant Project page.下载Ant。对于这个例子需要Apache ant 1.6.5